ASP.NET MVC路由与Windows中的保留文件名
在我们的ASP.NET MVC应用程序中,我们注意到我们的路由中不能有禁止的DOS文件名 – COM1
到COM9
, LPT1
到LPT9
, CON
, AUX
, PRN
和NUL
。 它们不可避免地导致IIS告诉我们文件无法find,即使我们设置路由时不首先检查文件的存在。 我们如何解决这个问题?
这已在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>
希望有所帮助。
自问这个问题以来,我发现这个错误是在ASP.NET中,而不是IIS或ASP.NET MVC,这意味着没有办法解决这个问题。 唯一的解决办法是手动禁止匹配这些名称和这些名称后跟一个句点和随机字符的URL。
出于类似的原因,在StackOverflow中不能有一个web.config
标签。
http://stackoverflow.uservoice.com/pages/1722-general/suggestions/98871-web-config-tag-404-error
由于另一个类似的原因,你不能有一个网点和一个斜杠语义url在.net中的url