Я унаследовал веб-приложение ASP.NET, написанное на С#. На многих страницах по всему сайту имя хоста извлекается с помощью:
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, но я не вижу ответа.