IIS7似乎不喜欢<soapextensiontypes>,还有什么替代方案?</soapextensiontypes>

时间:2010-08-31 14:55:26

标签: asp.net iis-7

我实际上是以与SO answer suggests相同的方式将错误记录到ELMAH但最初我从IIS收到错误,表明设置未被使用,然后当我清除错误时(通过转换遗留问题)配置验证)我的钩子似乎没有被调用。

HTTP Error 500.22 - Internal Server Error
An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.

Most likely causes:

    * This application defines configuration in the system.web/httpModules section.

我知道一些像system.web / httpModules这样的设置需要迁移到system.webServer,但我似乎无法弄清楚如何处理soapExtensionTypes配置设置。

<webServices>
  <soapExtensionTypes>
    <add type="ModuleName.SoapExceptionHandler, ModuleName" priority="1" group="0" />
  </soapExtensionTypes>
</webServices>

我需要做些什么才能让SoapExtension加载到管道中?

或者,我错了,它应该有效,但我已经搞砸了?

更新:在我的httpModules部分,我现在有,

<httpModules>
  <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
</httpModules>

1 个答案:

答案 0 :(得分:0)

根据你在这里发布的内容,一切都应该可以正常工作(我过去实际上使用了类似的策略)。

我的猜测是你在web.config的system.web / httpModules部分注册了其他处理程序。

如果您可以发布web.config的其余部分(减去任何敏感信息,如连接字符串等),这将有所帮助,以便我们可以看到问题所在的任何其他地方。

<强>更新

我认为您可能还必须将Elmah模块配置移出httpModules部分。他们迁移到以下地点:

<webServices>
    <soapExtensionTypes>
        <add type="ModuleName.SoapExceptionHandler, ModuleName" 
             priority="1"
             group="0" />
    </soapExtensionTypes>
    <modules>
        <add name="ErrorLog" type="Elmah.ErrorLogModule, Elmah" />
    </modules>
</webServices>