在我们的ASP.NET MVC应用程序中,我们注意到我们不能拥有禁止的DOS文件名 - COM1
到COM9
,LPT1
到LPT9
,{ {1}},CON
,AUX
和PRN
- 我们的路线中的任何位置。它们不可避免地导致IIS告诉我们找不到文件,即使我们设置路由不首先检查文件是否存在。我们如何解决这个问题?
答案 0 :(得分: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>
希望有所帮助。
答案 1 :(得分:18)
自从提出问题以来,我发现错误是在ASP.NET中,而不是IIS或ASP.NET MVC,这意味着没有办法解决它。唯一的解决方案是手动禁止匹配这些名称的URL,这些名称后跟句点和随机字符。
答案 2 :(得分:4)
由于类似的原因,StackOverflow中不能有web.config
标记。
http://stackoverflow.uservoice.com/pages/1722-general/suggestions/98871-web-config-tag-404-error
答案 3 :(得分:0)
出于另一个类似的原因,你不能有带点和斜线的网址 Semantic urls with dots in .net