我在尝试在web.config中映射HttpHandler时遇到问题。

这是相关的配置位:

<httpHandlers>
  <add verb="*" path="*.hndlr" type="MyAssembly.MyHandler, MyAssembly" validate="false" />
</httpHandlers>

当我导航到http://localhost/myApp/whatever.hndlr时,出现服务器错误404(未找到)。

这是我第一次连接HttpHandler,所以我可能会缺少一些东西-感谢您提供任何帮助!

更新:

到目前为止,我都设法通过两个答案使它正常工作-谁能解释为什么它起作用,所以答案会被标记!

这是我的配置(如果没有两者都无法使用-我在经典模式中运行 IIS7)

System.web:
<httpHandlers>
    <add verb="*" path="*MyHandler.hndlr" type="MyAssembly.MyAssemblyHandler, MyAssembly" validate="false"/>
</httpHandlers>

System.webserver:
<handlers>
    <add name="MyHandler" verb="*" path="*MyHandler.hndlr" type="MyAssembly.MyAssemblyHandler, MyAssembly" validate="false" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script"/>
</handlers>

最佳答案

如果正在使用IIS7,那么应用程序池是否以经典模式或管道模式运行?如果在管道模式下是IIS7,则处理程序引用需要进入以下部分

<system.webServer>
    <handlers>
    </handlers>
<system.webServer>

而不是在下一节中。
<system.web>
    <httpHandlers>
    </httpHandlers>
</system.web>

10-05 19:29