我需要在URL名称中允许包含CON,AUX,NUL等保留关键字的URL,例如:.... / CON /...
现在,当我尝试访问这样的网址时,我收到了404错误和以下异常:
[HttpException]
at System.Web.CachedPathData.GetConfigPathData(String configPath)
at System.Web.HttpContext.GetFilePathData()
根据本网站Semantic urls with dots in .net上的其他帖子,已针对.Net 4修复此问题,但由于其他依赖关系,我无法升级到.Net4,因此需要另外一种方法。
答案 0 :(得分:3)
根据微软在连接和MSDN论坛上对此的回应,除了升级到4.0之外,asp.net中没有解决方法。您可以尝试使用IIS网址重写,但您仍然无法在路由中放置COM1(或其他)。
(另见:http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx)
答案 1 :(得分:2)
ASP.NET 4使用新设置修复了此问题。在web.config中,只需添加
<httpRuntime relaxedUrlToFileSystemMapping="true"/>
到system.web节点。这是我的web.config中的一个片段。
<configuration>
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true"/>
<!-- ... your other settings ... -->
</system.web>
</configuration>