代码之家  ›  专栏  ›  技术社区  ›  n8wrl

iis7和模块中令人费解的通配符问题

  •  0
  • n8wrl  · 技术社区  · 15 年前

    我们在iis6中运行了一个ASP.NET 3.5应用程序,我们正在迁移到iis7和集成管道。我们的应用程序做了一些非常简单的URL重写来检查如下的URL:

    website.com/dealer/page.aspx
    

    剥离“dealer”,在数据库中查找上下文并转到page.aspx。

    在IIS6中,这是一个通配符映射。我在iis7的web.config中将模块移到了正确的位置:

    <system.webServer>
        <modules>
            <add name="ModuleRewriter" 
             type="Insignia.Catalog2.ModuleRewriter, Insignia.Catalog2"
             preCondition="" />
    

    而且它起作用了——几乎。像这样的路径工作:

    website.com/dealer/page.aspx
    website.com/dealer/
    

    后者默认为index.aspx页。我的问题是,这个不是:

    website.com/dealer
    

    注意末尾缺少的斜线。我得了404分。我错过了什么?

    更新:

    它与静态文件处理程序有关-如果我禁用了它,则URL会正确映射,但静态内容不起作用…

    1 回复  |  直到 15 年前
        1
  •  0
  •   n8wrl    15 年前

    好吧,我修改了modules标签,让它工作了:

    <modules runAllManagedModulesForAllRequests="True">
    

    但这显然是货物崇拜,因为我还不知道它在做什么。