我們剛發現我們的新「雲」託管存在問題。 基本上,NAT /端口轉發已配置,因爲它們不允許多個內部IP,因此可以爲多個站點完成SSL證書。MVC3生成包含端口號的URL,如何阻止它
這會導致在指定協議時生成的任何MVC路由出現問題。 此外,如果嘗試去一個需要登錄的URL,重定向的https登錄URL中的ReturnUrl參數也有端口號碼。
問題是 - 有什麼方法可以告訴MVC永遠不會包含即使存在端口號,也不會使用UrlHelpers操作/路由方法重載,從而允許您指定域並因此手動剝離端口號。
在情況不是很明顯從上面的什麼請求的過程是這樣,這裏有一個小例子:
- 用戶瀏覽器發出請求,網站
- 服務器轉發相同的URL,但與附加 端口號
- 生成頁面
- 將響應發回給用戶瀏覽器。
- 用戶登錄,但現在返回的URL具有端口,因此重定向時用戶獲取頁面無法顯示。
由於端口轉發malarkey,這似乎導致MVC路由變得混亂。 不知道技術服務器端如此好我不確定它是否只是託管公司不配置在IIS或NAT的東西正確的東西或是否只是一些web.config的東西,需要配置,以使MVC生成正確的URLs就好像這個端口malarkey不存在一樣。
任何提示或指針最受讚賞。
呃,如果你有客戶端腳本,那也將是一個頭痛的問題。也許在[服務器故障](http://serverfault.com/)的人可以幫助在配置方面..對我來說,我不明白爲什麼端口被附加在第一位 - 是「切換「443」和「80」(http/s)? – EdSF 2014-09-01 16:45:20
不,這是因爲您有一臺託管多個站點的服務器,但出於SSL證書的目的,它需要一個IP地址,並且您不能爲多個域註冊相同的IP地址。由於雲服務器上只允許有一個內部IP,因此使用端口號進行轉發是唯一的辦法,但這會導致上述問題。然而,看到我自己的答案 - 唷! – Peter 2014-09-03 14:25:26