Request.Url.Host vs Request.Url.Authority

rwk*_*iii 17 c# asp.net

我继承了用C#编写的ASP.NET Web应用程序.在整个站点的许多页面中,使用以下命令检索主机名:

BaseHost = Request.Url.Host;
Run Code Online (Sandbox Code Playgroud)

由于我使用的是Visual Studio 2012 Express并且它安装了本地IIS Express服务器,因此当我在本地调试/运行时,似乎卡在了附加到主机名(localhost)的端口号.上面的代码不会导致包含端口号,因此会破坏由代码生成的链接(菜单项链接,重定向等).

我看到我可以通过将代码更改为:

BaseHost = Request.Url.Authority;
Run Code Online (Sandbox Code Playgroud)

这似乎是通过在我本地运行时(localhost:4652)包含端口以及发布到我的登台服务器(development.mysite.com)时修复它.

我的问题:这是不好的形式?是否有时间或情况会导致我的实际网站出现问题?快速替换所有这些实例似乎要容易得多.我考虑过编写一个小程序来追加: with Request.Url.Port,但它似乎更容易使用Request.Url.Authority.太容易了......

我试图在线和MSDN上研究我的问题,但我没有看到答案.

Yah*_*hia 19

根据MSDN Authority包括端口号而Host不是.另一个方面是,Authority如果需要,将转义保留字符.

在不知道你的应用程序的情况下很难说它是否是一个好主意,但总的来说我会怀疑它不会破坏任何东西......所以继续......

另一种选择是运行应用程序IIS而不是IIS Express ...