2013-02-20 66 views
1

不工作我有簡單的路線圖,如:帶有「。」的ASP.NET MVC路由在Azure中

routes.MapRoute("Test", "test/{action}/{id}", new {controller = "Test", action = "Index", id = ""}); 

我的路由路徑是這樣的:

"/test/do-something/1.0.1" 

其中一期工程在本地測試完全沒問題,自我託管.NET 4.5 IIS7 +

但是,當我將其託管在Azure中時,它似乎與包含兩個「。」的ID有關的問題,告訴我「您正在查找的資源已被刪除,名稱已更改或暫時無法使用拉布勒。
當我改變"/test/do-something/1"路徑它的工作原理在Azure上也是如此。

爲什麼天青似乎禁止的ID以」。」我能做些什麼呢?

+0

這似乎是MVC框架而不是Azure本身的問題。有一個類似的問題在這裏描述http://stackoverflow.com/q/9273987/1916110 – Tom 2013-02-20 21:06:05

回答

0

我會建議使用' - '在你的id中,而不是'。' (週期),它在搜索引擎優化方面更友好。

如果你真的想要得到它與時間的工作,你可以使用一個名爲URLScan工具

What is URLScan?

有一個選項配置:

AllowDotInPath = 0

默認情況下,此選項設置爲0.如果此選項設置爲0,則 URLScan將拒絕包含多個句點(。)的任何請求。通過在URL的路徑 信息或查詢字符串部分中放置安全文件擴展名,此 可防止嘗試僞裝危險文件名 擴展名的請求。例如,如果此 選項...

Here是指向配置的鏈接。

+0

這是工作正常在本地機器以及自我承載的IIS服務器 - 唯一的問題是在Azure – TJF 2013-02-20 22:38:47

+0

您的網站如何設置在Azure上?在虛擬機或網站上? – 2013-02-20 22:44:49

+0

這是一個Azure網站 – TJF 2013-02-21 01:25:51