0

我已经定义了一个 HTTP 处理程序并在我的 web.config 中添加了一个条目

<add verb="GET" path="TestApp/*" type="TestApp.TestHandler, TestWebApp" />

这可以正常工作,除非我遇到静态资源,例如 JPG、PNG 文件

我需要我的处理程序来处理像 TestApp/logo.gif 这样的路径,但似乎 IIS 注册了 StaticHandler 来拦截这些请求

有没有办法让我的 ASP.NET HttpHandler 有机会仅为路径 TestApp/* 处理静态资源请求,但让 IIS StaticHandler 处理其他所有内容?

是的,我意识到让 IIS 使用自己的处理程序处理静态资源更快、更高效

4

2 回答 2

1

你应该把它添加到你的 web.config 中:

<modules runAllManagedModulesForAllRequests="true" />

这将确保即使对静态文件的请求也通过 .net 管道传递。

于 2013-05-10T13:47:11.953 回答
1

如果您在集成管道模式下运行,您的处理程序将拦截这些请求:

<system.webServer>
    <handlers>
        <add name="TestHandler" path="TestApp/*" verb="GET" type="TestApp.TestHandler, TestWebApp" />
    </handlers>
</system.webServer>

如果您在经典管道模式下运行,则必须在 IIS 中注册一个 ISAPI 过滤器才能使这些请求通过托管处理程序。

于 2013-05-10T13:47:17.260 回答