2010-11-24 24 views
5

我需要允許的URL有一些保留關鍵字CON,AUX,NUL等在網址名稱如:.../CON/...允許CON,在URL中的保留關鍵字

現在我得到一個404錯誤和以下異常,當我試圖去這樣的URL:

[HttpException] 
    at System.Web.CachedPathData.GetConfigPathData(String configPath) 
    at System.Web.HttpContext.GetFilePathData() 

已修正爲.NET 4,根據本網站Semantic urls with dots in .net其他職位,但我不能升級到.NET4因到其他依賴項,所以需要一種替代方法來做到這一點。

+0

我在這裏錯過了一些東西。網址沒有保留關鍵字。而且我無法在MSDN中的任何位置找到CachedPathData或GetConfigPathData。 – Amy 2010-11-24 06:54:11

+0

@ yodaj007它們在Windows中有特殊含義,因爲它們是設備。 – 2010-11-24 17:22:12

回答

3

根據微軟對此連接和MSDN論壇的迴應,除了升級到4.0之外,在asp.net中沒有解決方法。你可以嘗試使用IIS URL重寫,但是你仍然不能將COM1(或其他)放在你的路由中。

(參見:http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx

+0

指向「連接和MSDN論壇」的鏈接將使這個更有用的答案。 – 2010-11-24 17:31:07

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>