我有一個將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。
因此,這顯然是由一個事實,即字計劃是子域和計劃引起也是路線事情結束/ 計劃
我們需要以某種方式避免這種情況發生,也許路線沒有正確設置,或者它只是一個錯誤,但很好找出爲什麼會發生這種情況,所以我們可以修復它。
謝謝