2

我在 IIS 7.5 上使用 ELMAH 的 WCF (.Net 3.5) 站点有问题。这是异常消息:

System.Security.SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

为了验证它是 IIS7.5 上的 WCF 和 ELMAH 的组合,我在 VS2008 中创建了一个新的 WCF 服务项目,并在 IIS 7.5 站点下创建了一个新的应用程序。我发布了它并确保它没问题。然后我添加了 ELMAH DLL。还是可以的。然后将 ELMAH configSection 引用添加到 Web.config。还是可以的。然后我将 ELMAH 内容添加到 system.web 中的 httpHandlers 和 httpModules(是的,我知道这不适用于 7.5)。还是可以的。然后我将它添加到 system.webServer 中的处理程序和模块中:

<handlers>
    :
  <add name="Elmah" verb="POST,GET,HEAD" 
       path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />

<modules>
    :
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah"/>
  <add name="ErrorMail" type="Elmah.ErrorMailModule, Elmah" />
  <add name="ErrorFilter" type="Elmah.ErrorFilterModule, Elmah" />

然后我得到了安全异常。我没有进行其他配置更改。

一切都使用 VS 开发网络服务器。开发机器是安装了 VS 2008 SP1 的 2008 R2 x64。WCF 服务是为 x86 构建的(因为原始项目是)。ELMAH 是 .Net 3.5 x86 版本。IIS7.5 应用程序池设置为允许 32 位。

知道我需要做什么才能使其正常工作吗?

4

2 回答 2

2

就我而言,我必须在应用程序池中设置“加载用户配置文件 = True”才能使其工作。

脚步:

从应用程序池列表中,转到高级设置,流程模型部分并将“加载用户配置文件”设置为“真”。

于 2010-09-20T01:08:49.923 回答
0

您必须在 IIS 管理器中为您的虚拟 Web 目录添加托管处理程序。

  • 请求路径将是:elmah.axd
  • 类型将是:Elmah.ErrorLogPageFactory, Elmah
  • 姓名:Anything you want it to be identified with.

注意:每次从 Visual Studio 发布更改时,都会删除此设置。所以你将不得不再次添加它。

于 2010-07-05T12:21:39.867 回答