我在 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 位。
知道我需要做什么才能使其正常工作吗?