当我指定某些文件扩展名时,ASP.net路由被忽略

时间:2012-01-31 03:12:39

标签: asp.net-mvc asp.net-mvc-routing

我有一个处理"{Object}/{Operation}/{Name}"的路线设置。

如果我提出以下请求,则路由工作正常: http://localhost/Software/Download/Filenameexe (请注意,如果未指定文件扩展名,则不需要正斜杠)我提出请求时请求也会成功: http://localhost/Software/Download/Filename.exe/ (请注意尾随正斜杠)

但是当我发出请求时,我收到了404: http://localhost/Software/Download/Filename.exe(这次是文件扩展名,没有尾随正斜杠)。

使用内置的Visual Studio 2010开发asp.net Web服务器时,一切都运行得很漂亮,但是当我在IIS中启动网站时,它只会抛出404,除非我追加尾部正斜杠。

如何让ASP.net路由引擎不那么挑剔并接受所有示例?

  • http://localhost/Software/Download/Filename.exe
  • http://localhost/Software/Download/Filenameexe
  • http://localhost/Software/Download/Filename.exe/

1 个答案:

答案 0 :(得分:5)

检查我对this question的回答,我认为你正在处理同样的问题。您可能需要指定runAllManagedModulesForAllRequests="true",或为.exe文件添加HTTP处理程序,以确保ASP.NET处理.exe文件的请求。如果ASP.NET不处理文件,则不会遵循您的路由。