Iis 7 将IIS7配置为同时为通配符ISAPI DLL和静态文件提供服务器

Iis 7 将IIS7配置为同时为通配符ISAPI DLL和静态文件提供服务器,iis-7,isapi,Iis 7,Isapi,我有一个ISAPI DLL,它在IIS中配置为通配符映射。当请求URL对应于静态文件时,我希望IIS的StaticFileModule为该文件提供服务。当文件不存在时,我希望ISAPI DLL处理它 my web.config的handlers部分位于静态文件层次结构的根目录中,如下所示 <handlers accessPolicy="Read, Script"> <clear /> <add name="SomeIsapiDll" path

我有一个ISAPI DLL,它在IIS中配置为通配符映射。当请求URL对应于静态文件时,我希望IIS的StaticFileModule为该文件提供服务。当文件不存在时,我希望ISAPI DLL处理它

my web.config的handlers部分位于静态文件层次结构的根目录中,如下所示

<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实现的问题,但在这一点上我不知道。想法?

我们遇到了同样的问题,然后我们添加了以下内容:

<add name="aspnet_isapi 32-bit" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32" />

<add name="aspnet_isapi 64-bit" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness64" />

我们遇到了同样的问题,然后我们添加了以下内容:

<add name="aspnet_isapi 32-bit" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness32" />

<add name="aspnet_isapi 64-bit" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv2.0,bitness64" />


这完全解决了我使用Vista 64位时遇到的一个问题。谢谢这完全解决了我使用Vista 64位时遇到的一个问题。谢谢