我有一个在 IIS 中为通配符映射配置的 ISAPI DLL。当请求 URL 对应于静态文件时,我希望 IIS 的 StaticFileModule 为该文件提供服务。当文件不存在时,我希望 ISAPI DLL 来处理它。
我的 web.config 的处理程序部分位于静态文件层次结构的根目录中,如下所示...
<handlers accessPolicy="Read, Script">
<clear />
<add name="SomeIsapiDll" path="*" verb="*" type=""
modules="IsapiModule" scriptProcessor="C:\my_site\some_isapi.dll"
resourceType="Unspecified" requireAccess="None" allowPathInfo="false"
preCondition="" responseBufferLimit="4194304" />
<add name="StaticFile" path="*" verb="*" type=""
modules="StaticFileModule,DefaultDocumentModule" scriptProcessor=""
resourceType="Unspecified" requireAccess="None" allowPathInfo="false"
preCondition="" responseBufferLimit="4194304" />
</handlers>
这适用于针对 ISAPI DLL 的请求,但静态文件返回为 404。如果我颠倒顺序,我只会得到没有任何请求内容的空白页。如果我从 web.config 中删除 ISAPI DLL,则静态文件会正确提供,但当然,ISAPI 请求不会提供。
我的理解是级联通配符处理程序应该可以工作,但我能找到的 Microsoft 文档对于如何实现这一点非常模糊。这可能是配置问题或 ISAPI DLL 实现的问题,但目前我不知道。想法?