Windows中的ASP.NET MVC路由与预留文件名

Ben*_*ack 39 windows iis asp.net-mvc

在我们的ASP.NET MVC应用程序,我们已经注意到,我们不能有禁DOS文件业者名称,COM1通过COM9,LPT1通过LPT9,CON,AUX,PRN,和NUL我们的路线-anywhere.它们不可避免地导致IIS告诉我们无法找到文件,即使我们设置路由不首先检查文件是否存在.我们如何解决这个问题?

Haa*_*ked 36

这已在ASP.NET 4中得到解决.http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx

您可以在web.config中应用放宽此限制的设置.

<configuration>
  <system.web>
    <httpRuntime relaxedUrlToFileSystemMapping="true"/>

    <!-- ... your other settings ... -->
  </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.


Ben*_*ack 18

自从提出问题以来,我发现错误是在ASP.NET中,而不是IIS或ASP.NET MVC,这意味着没有办法解决它.唯一的解决方案是手动禁止匹配这些名称的URL,这些名称后跟句点和随机字符.

  • 对.:) ASP.NET团队已经意识到这个错误,并且正在为ASP.NET 4进行调查.不能保证它是否会被修复,但至少有兴趣让开发人员更好. (3认同)