我已經繼承了用C#編寫的ASP.NET Web應用程序。在整個網站的多個網頁的主機名是使用檢索:Request.Url.Host與Request.Url.Authority
BaseHost = Request.Url.Host;
由於我使用Visual Studio 2012 Express和它安裝在本地IIS Express服務器,我似乎與(附加到主機的端口號被卡住本地主機)當我調試/本地運行。上面的代碼不會導致端口號被包含,並因此破壞由代碼(菜單項鍊接,重定向等)生成的鏈接。
我看到,我可以通過代碼更改爲解決該問題:
BaseHost = Request.Url.Authority;
這似乎由包括當我在本地運行的端口來解決它(本地主機:4652),並在發佈到我登臺服務器(development.mysite.com)。
我的問題:這是不好的形式?是否有時間或情況會導致我的現場網站出現問題?這似乎更容易做到快速替換所有這些實例。我曾考慮編寫一個小程序來追加: with Request.Url.Port
,但使用Request.Url.Authority
似乎更容易。太容易了......
我試圖在網上和MSDN上研究我的問題,但我沒有看到答案。
有一點疑問。如果我在本地主機上運行應用程序,我的URL中有端口號,但在生產中,我沒有端口號。那麼,我可以自由使用Url.Authority的權利?我的意思是如果端口號不存在,那麼URl.Authority將採用與URL.Host相同的權限。我的意思是我仍然能夠正確地獲取URL?請指導我。 – Unbreakable