我继承了一个用 C# 编写的 ASP.NET Web 应用程序。在整个站点的许多页面中,使用以下方式检索主机名:
BaseHost = Request.Url.Host;
由于我使用的是 Visual Studio 2012 Express 并且它安装了本地 IIS Express 服务器,因此当我在本地调试/运行时,我似乎被附加到主机名 (localhost) 的端口号卡住了。上面的代码不会导致包含端口号,因此会中断由代码生成的链接(菜单项链接、重定向等)。
我发现我可以通过将代码更改为:
BaseHost = Request.Url.Authority;
这似乎通过在我在本地运行(localhost:4652)和发布到我的登台服务器(development.mysite.com)时包含端口来解决它。
我的问题:这是不好的形式吗?是否有时间或情况会导致我的现场网站出现问题?快速替换所有这些实例似乎要容易得多。我考虑过编写一个小例程来追加: with Request.Url.Port
,但它似乎更容易使用Request.Url.Authority
。太容易了,也许...
我试图在网上和 MSDN 上研究我的问题,但我没有看到答案。