Что действительно делает переопределить корневой URL-адрес приложения?
Единственное место во всем Интернете, где я мог найти объяснение, - это MSDN:
Указывает альтернативный путь для корневого URL-адреса приложения. Используйте эту опцию, если корень веб-приложения не является корнем вашего проекта.
Отсюда я понял, что "корень приложения" - это путь, который извлекается при использовании тильды в ASP.NET. Поэтому я ожидаю, что если я зайду в свойства проекта - Web - "Переопределить корень приложения" и укажу другой URL, то тильда будет отображаться на этот URL.
Но это не так. Например, мой веб находится в виртуальном каталоге - http://localhost/WebApplication1
а на "Переопределить корень приложения" пытаюсь указать http://localhost/WebApplication2
или же http://localhost
или же http://WebApplication2
(которые все существуют на моем местном IIS). Теперь, когда я пишу
Response.Redirect("~/test2/login");
Я ожидаю, что это перенаправит меня на http://localhost/WebApplication2/test2/login
, Но вместо этого он перенаправляет меня на http://localhost/WebApplication1/test2/login
как будто я не переопределил "корень приложения".
Так что же на самом деле предполагает эта функция? Или, может быть, это не работает, потому что я что-то упустил и не определил это правильно?
1 ответ
Переопределить корневой URL-адрес приложения не изменится, если корневой каталог приложения находится в вашем приложении. Изменяет URL-адрес, используемый для достижения корня приложения. Поскольку IIS выполняет некоторую проверку имени хоста, он используется, чтобы указать, хотите ли вы обратиться к приложению другими способами, кроме localhost:[PORT]
,
Например, если вы переопределите его www.myapp.com
затем вы можете обратиться к своему приложению, добавив его в файл hosts:
127.0.0.1 www.myapp.com
Это может быть особенно полезно, если вы делаете приложение доступным для удаленного устройства (виртуальной машины на вашем компьютере или мобильного устройства в вашей сети), поскольку они не смогут перейти к localhost
в качестве адреса приложения.