IIS7:通配符映射和默认文档

时间:2010-05-31 17:12:58

标签: iis-7 wildcard

我正在将IIS6网站迁移到IIS7,我遇到了在使用默认文档时混合全局ASP.NET处理程序的众所周知的问题。有关详细信息,请参见此处:

http://blogs.msdn.com/b/david.wang/archive/2005/10/15/why-wildcard-application-mapping-can-disable-default-document-resolution.aspx

现在,在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”通配符,默认文档不起作用。我的一组约束是这样的:

  • 让所有非静态请求由“Everything”global.asax处理以进行重写。
  • 不要更改global.asax代码,因为它很复杂(我们稍后会对其进行整理)。
  • 拥有现有目录的默认文档
  • 不要处理“Everything”中的静态文件
  • 使用IIS7集成模式

我目前的理解是这种设置无法完成。因此,一个交易是在静态文件之后注册的IHttpModule中移动 global.asax重写代码。令人遗憾的是,它需要单独的程序集而不是直接编辑项目。我不知道卡西尼会如何表现。

你怎么看? IHttpModule是正确的方法吗?它会更简单吗?

0 个答案:

没有答案