jedyne miejsce na całym internecie mogę znaleźć wyjaśnienie jest MSDN:Co naprawdę robi Zastępowanie głównego adresu URL aplikacji?
Określa alternatywną ścieżkę do głównego adresu URL aplikacji. Użyj tej opcji , jeśli katalog główny aplikacji sieci Web nie jest katalogiem głównym projektu.
Od here Zrozumiałem, że "root aplikacji" jest ścieżką, która pobiera podczas korzystania z tyldy w ASP.NET. Tak więc oczekiwałbym, że jeśli przejdę do właściwości projektu - Web - "Zastąp główny katalog aplikacji" i podaj inny adres URL, to tylda będzie mapować do tego adresu URL.
Ale tak nie jest. Na przykład moja witryna znajduje się na katalogu wirtualnym - http://localhost/WebApplication1
i na "Override application root" Próbuję określić http://localhost/WebApplication2
lub http://localhost
lub http://WebApplication2
(które wszystkie istnieją w moim lokalnym IIS). Teraz, gdy piszę:
Response.Redirect("~/test2/login");
Oczekuję, że przekieruje mnie do http://localhost/WebApplication2/test2/login
. Ale zamiast tego przekierowuje mnie do http://localhost/WebApplication1/test2/login
, tak jakbym nie zastąpił "root aplikacji".
Więc co naprawdę ma ta funkcja? A może to nie działa, bo czegoś brakuje i nie zdefiniowałem go właściwie?
Dobra odpowiedź, szukałem wyjaśnienia i nigdzie nie mogłem go znaleźć! Nadal nie rozumiem, dlaczego tak jest potrzebne, ponieważ mogłem po prostu dodać wiązanie IIS do tej strony i zdefiniować w "Host Name" 'www.myapp.com' - wydaje się, że osiągnęłoby dokładnie ten sam efekt ? – BornToCode
Jeśli używasz IISExpress do rozwoju lokalnego, nie ma wiele GUI, które widzę do konfigurowania takich rzeczy. O ile mogę powiedzieć, możesz użyć tej opcji w konfiguracji kompilacji lub ręcznie edytować pliki konfiguracyjne IISExpress. – IronSean