Odziedziczyłem aplikację WWW ASP.NET napisaną w języku C#. W wielu stron w całej witrynie nazwa hosta jest pobierany za pomocą:Request.Url.Host vs Request.Url.Authority
BaseHost = Request.Url.Host;
Ponieważ używam Visual Studio 2012 Express i jego zainstalowaniu lokalnego serwera IIS Express,, I wydają się być zatrzymany z numerem portu przyłączonej do hosta (localhost) podczas debugowania/uruchamiania lokalnie. Powyższy kod nie powoduje dołączenia numeru portu i jako taki powoduje zerwanie odsyłaczy generowanych przez kod (łącza do elementów menu, przekierowania itp.).
widzę, że mogę rozwiązać ten problem przez zmianę kodu do:
BaseHost = Request.Url.Authority;
Wydaje się to naprawić, w tym port kiedy biegnę lokalnie (localhost: 4652) i gdy opublikowane na moim serwer pomostowy (development.mysite.com).
Moje pytanie: czy to jest ta zła forma? Czy jest jakiś czas lub sytuacja, w której spowoduje to problemy w mojej witrynie na żywo? Po prostu wydaje się znacznie łatwiejsze szybkie zastąpienie wszystkich tych instancji. Zastanawiałem się nad napisaniem małej procedury dodawania : with Request.Url.Port
, ale wydaje się łatwiejsze użycie tylko Request.Url.Authority
. Zbyt łatwo może ...
Próbowałem sprawdzić moje pytanie przez Internet i na stronie MSDN, ale nie widzę odpowiedzi.
Jedna drobna wątpliwość. jeśli uruchomię aplikację w localhost, mam numer portu w moim adresie URL, ale w produkcji nie mam numeru portu w adresie URL. Więc mogę swobodnie korzystać z Url.Authority, prawda? Chodzi mi o to, że jeśli nie ma numeru portu, URl.Authority będzie działać tak samo jak URL.Host prawo. Mam na myśli, że nadal będę w stanie poprawnie odczytać adres URL? proszę, prowadź mnie,. – Unbreakable