在我們的ASP.NET MVC應用程序,我們已經注意到,我們不能有禁DOS文件名— COM1
通過COM9
,LPT1
通過LPT9
,CON
,AUX
,PRN
,和NUL
—我們的路線中的任何地方。它們不可避免地導致IIS告訴我們文件無法找到,即使我們設置路由時不首先檢查文件的存在。我們如何解決這個問題?ASP.NET MVC路由與保留的文件名在Windows
39
A
回答
35
這在ASP.NET得到解決4. http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx
你可以申請一個斜槓的URL另一個類似的原因在web.config中放寬這個限制。
<configuration>
<system.web>
<httpRuntime relaxedUrlToFileSystemMapping="true"/>
<!-- ... your other settings ... -->
</system.web>
</configuration>
希望有所幫助。
18
由於提出這個問題,我發現這個錯誤是在ASP.NET本身,而不是IIS或ASP.NET MVC,這意味着沒有辦法解決它。唯一的解決方法是手動禁止匹配這些名稱和這些名稱的URL,後跟一個句點和隨機字符。
4
由於類似的原因,在StackOverflow中不能有web.config
標記。
http://stackoverflow.uservoice.com/pages/1722-general/suggestions/98871-web-config-tag-404-error
0
你不能有一個點和 Semantic urls with dots in .net
爲了好玩,打http://stackoverflow.com/com1並比較http://stackoverflow.com/ThisDoesNotExist – kamens 2009-06-12 15:09:30
有趣的是,stackoverflow.com/clock$工作正常,即使CLOCK $是一個保留的設備文件名爲好。 – 2009-06-12 15:30:04
並利用這些知識,我現在已經成功地無法導航到我的用戶頁面。活泉。 – 2009-06-12 16:49:22