问题映射HttpHandler - >找不到HTTP错误404

Joh*_*dol 32 asp.net configuration web-config httphandler

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

这是相关的配置位:

<httpHandlers>
  <add verb="*" path="*.hndlr" type="MyAssembly.MyHandler, MyAssembly" validate="false" />
</httpHandlers>
Run Code Online (Sandbox Code Playgroud)

当我导航到http://localhost/myApp/whatever.hndlr我收到服务器错误404(未找到).

这是我第一次联系HttpHandler,所以我可能会遗漏一些东西 - 任何帮助表示感谢!

更新:

到目前为止,我设法使用这两个答案让它工作 - 谁能够挖掘它的工作原理得到答案标记!

这是我的配置(如果不同时配置将不起作用 - 我在经典模式下运行IIS7)

System.Web程序:

<httpHandlers>
    <add verb="*" path="*MyHandler.hndlr" type="MyAssembly.MyAssemblyHandler, MyAssembly" validate="false"/>
</httpHandlers>
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

Ben*_*son 28

您是否使用IIS7,如果是经典或流水线模式下运行的应用程序池?如果它是流水线模式的IIS7,则处理程序引用需要进入以下部分

<system.webServer>
    <handlers>
    </handlers>
<system.webServer>
Run Code Online (Sandbox Code Playgroud)

而不是在下一节.

<system.web>
    <httpHandlers>
    </httpHandlers>
</system.web>
Run Code Online (Sandbox Code Playgroud)


CRe*_*lts 9

就像那些坚持这个问题的人的指南一样,我发现了关键属性.

resourceType="Unspecified"
Run Code Online (Sandbox Code Playgroud)

我最初跟着一个微软的例子来设置它,他们就是这样的

resourceType="File"
Run Code Online (Sandbox Code Playgroud)

这只是一直给我404错误.我的HTTPHandler正在返回图形.

希望这可以帮助 :)


小智 5

我正在使用IIS7,解决方案是:

在部分

<system.web>
    <httpHandlers>
        <add verb="*" path="*.ashx" type="CVOS.MyDocumentHandler"/>
    </httpHandlers>
<system.web>
Run Code Online (Sandbox Code Playgroud)

和部分

<system.webServer>
    <handlers>
       <add name="pdfHandler" verb="*" path="*.ashx"   type="CVOS.MyDocumentHandler" /> 
    </handlers>
</system.webServer>
Run Code Online (Sandbox Code Playgroud)