Что действительно переопределяет корневой URL-адрес приложения?

единственное место во всем интернете, где я мог найти объяснение, находится на MSDN:

задает альтернативный путь для корневого URL-адреса приложения. Использовать это опция, если корень веб-приложения не является корнем проекта.

С здесь я понял, что "корень приложения" - это путь, который извлекается при использовании Тильды в ASP.NET - ... Поэтому я ожидаю, что если я перейду к свойствам проекта-Web - " Override корень приложения " и укажите другой url-адрес, тогда Тильда будет сопоставляться с этим url-адресом.

но это не так. Например мой веб-в виртуальном каталоге - http://localhost/WebApplication1 и на "Override application root" я пытаюсь указать 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 адрес приложения.