2014-09-01 64 views
0

我有一個將MVC路徑路由到aspx頁面的奇怪問題。除了一些罕見的情況之外,這一切都可以找到。其實這並不罕見,因爲這個月發生了兩次。MVC當子域文本也是路由的一部分時,頁面路由替換子域的一部分

所以我們已經有了舊的aspx頁面,但我們需要有更友好的URL。這是背景,無法避免,因爲我不會去。

所以我有一個頁面〜/ MySubFolder/Plans.aspx

我們需要的URL爲〜/事/計劃

,所以我必須在航線配置頁面路線

routes.MapPageRoute("Tickets", "Things/Plans", "~/MySubFolder/Plans.aspx"); 

這在大多數情況下都能正常工作。

該應用程序是SaaS產品,我們根據他們使用的網址確定上下文中的租戶。因此,每個租戶都會在我們的應用上獲得子域名,例如http://clienta.ourapp.com

所以這就是問題所在。

我們有一個客戶註冊和他們選擇了自己的子域名是http://plans.ourapp.com

客戶端沒有除了當他們試圖訪問我們的路徑〜/事/計劃的任何問題。當他們這樣做時,我們會得到一個錯誤。這是我們自己的例外之一,它發生是因爲在每次請求時,我們通過查看子域來確定租戶是誰。

由於某些原因,當我們檢查域名路由時已經剝離了子域名的計劃部分,並且是http:// .ourapp.com而不是http://plans.ourapp.com

因此,這顯然是由一個事實,即字計劃是子域和計劃引起也是路線事情結束/ 計劃

我們需要以某種方式避免這種情況發生,也許路線沒有正確設置,或者它只是一個錯誤,但很好找出爲什麼會發生這種情況,所以我們可以修復它。

謝謝

回答

0

原來這與路由URL沒有任何關係。在代碼中的其他地方,我們嘗試評估當前租戶URL,因爲某些原因,我們基於URL的另一部分替換了部分URL,而URL的另一部分是某些情況下的問題。難怪沒有人對此做出回答