【问题标题】:ASP.NET Webforms routing with extension带有扩展名的 ASP.NET Webforms 路由
【发布时间】:2013-04-26 22:18:22
【问题描述】:

我有一个带有 url-routing 的简单 ASP.NET Web 应用程序项目,并希望“允许”带有“.html”等文件扩展名的路由,例如...

http://www.mywebsite.com/cms/test.html
http://www.mywebsite.com/cms/sub/test.html
http://www.mywebsite.com/cms/sub/sub/test.html

我的 global.asax 路由如下所示:

routes.MapPageRoute("", "cms/{a1}", "~/default.aspx");

当我访问这样的网站时,路由匹配: http://www.mywebsite.com/cms/test

如果我尝试这个,它也不起作用:

routes.MapPageRoute("", "cms/{a1}.html", "~/default.aspx");

编辑:我总是收到 404 错误。我认为 .net 会寻找物理文件...

有什么想法吗?

【问题讨论】:

  • 您应该在 .NET 工作进程之前验证 IIS 是否没有路由这些请求。
  • 我该怎么做?在 Mime-Types 属性中?
  • 最简单的故障排除方法是将 HTML 文件放在您要路由到的路径上并测试它是否被调用。如果您不断收到 404,则与 IIS 无关,问题出在您的路由上。否则,就是 IIS 妨碍了您。

标签: c# asp.net routing file-extension


【解决方案1】:

我已经用下面的属性“runAllManagedModulesForAllRequests”在我的上面修复了它,如下所示:

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
    <handlers>
      <remove name="UrlRoutingHandler" />
    </handlers> 
  </system.webServer>

【讨论】:

  • 非常感谢。这让我发疯了很长一段时间。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-05
  • 2019-06-26
  • 2010-10-24
  • 1970-01-01
  • 2012-03-09
  • 1970-01-01
相关资源
最近更新 更多