我正在将IIS6网站迁移到IIS7,我遇到了在使用默认文档时混合全局ASP.NET处理程序的众所周知的问题。有关详细信息,请参见此处:
现在,在IIS7中,我配置了以下模块,其中“Everything”有一个global.asax重写了很多查询。
[... All default app modules ...]
<add name="StaticFile" path="*.*" verb="*" type="" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" scriptProcessor="" resourceType="Either" requireAccess="Read" allowPathInfo="false" preCondition="" />
<add name="Everything" path="*" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" />
使用此配置,由于“StaticFile”通配符,默认文档不起作用。我的一组约束是这样的:
我目前的理解是这种设置无法完成。因此,一个交易是在静态文件之后注册的IHttpModule中移动 global.asax重写代码。令人遗憾的是,它需要单独的程序集而不是直接编辑项目。我不知道卡西尼会如何表现。
你怎么看? IHttpModule是正确的方法吗?它会更简单吗?