Dwa dni temu ponownie wydrukowałem analizę startową rdzenia .NET, ponieważ byłem zaplątany w domyślny port 5000 w momencie jego wydania, więc dokładnie ją przestudiowałem.
1. Integracja z IIS
Jeśli używasz IIS jako hosta, to nie stanowi to problemu – potężny IIS może pomóc nam skonfigurować nazwę domeny, port itp. strony. Jeśli chodzi o wdrożenie asp.net core aplikacji webowej na IIS, to nie o to tu chodzi. Opisz to mniej więcej:
Musisz pobrać Net Core SDK i Server Hosting, a adres pobrania to https://www.microsoft.com/net/download
Po instalacji sprawdź, czy .NET Core SDK zostało pomyślnie zainstalowane na infonetcie wiersza poleceń
Poniżej pokazano, czy host serwera został pomyślnie zainstalowany w module IIS oraz mapowanie handlera
Następnie skonfiguruj stronę i określ pliki na stronie publikującej
Na koniec pula programów powinna być skonfigurowana i wybrać opcję niezarządzaną, tak aby istniało żądanie przekierowania hosta serwera.
2. Środowisko Linux
Nie wspominając o konkretnej instalacji – jest ich też sporo. Zgodnie z instrukcjami na oficjalnej stronie internetowej, czyli zainstalować środowisko uruchomienia .NET Core, a może ono działać.
Oto polecany wpis na blogu do własnej informacji: Wdrażanie ASP.NET Core applications do produkcji (CentOS7)
Wracając do głównego tematu, jak skonfigurować URL i parametry portu
1. Określ w głównej metodzie programu
To podejście jest nieelastyczne i mniej eleganckie, nawet jeśli odczytuje się je przez dodanie pliku konfiguracyjnego. W tym momencie czułem, że Microsoft zdecydowanie nie poleci takiego zastosowania, więc dalej go szukałem.
2. Przekaż zmienną środowiskową
Widziałem artykuł w Internecie Jak skonfigurować adresy Kestrel w ASP.NET Core RC2,
Chociaż nadal jest konfigurowany przez plik konfiguracyjny, nie musi odczytywać informacji konfiguracyjnych do innych artykułów i może być używany bezpośrednio przez bindowanie lub wklejając kod, aby zobaczyć:
hosting.json
Program.cs
Dzięki temu może też słuchać
Teraz słucham: http://localhost:60000
Teraz słucham: http://localhost:60001
Czyż to nie niesamowite! Nie mogę znieść samej walki, odbierz kod źródłowy! Zdecydowanie najlepszą rzeczą w .NET Core jest to, że ma kod źródłowy!
Na podstawie źródeł wiemy, że jest to głównie klasa WebHostBuilder, w ramach przestrzeni Microsoft.AspNetCore.Hosting.
Główną metodą jest Build
Głównym celem jest zbudowanie obiektu WebHost, a następnie dalsze poszukiwanie
Analizując kod źródłowy metodą Initialize, możemy poznać adres URL utworzony metodą EnsureServer
Tutaj widzimy, że z konfiguracji czyta się _config[WebHostDefaults.ServerUrlsKey] oraz _config[DeprecatedServerUrlsKey].
Wartość WebHostDefaults.ServerUrlsKey jest stałą wartością
Wartość DeprecatedServerUrlsKey jest definiowana na początku obiektu WebHost
Och! Prawda wychodzi na jaw. Możemy więc ustawić "server.urls" w pliku konfiguracyjnym.
Podsumowanie:
Podsumowując, asp.net rdzeń odczyta konfigurację zmiennej środowiskowej na początku, a faktycznym celem jest dodanie następującej konfiguracji do właściwości projektu:
Został uruchomiony w trybie konsoli i okazało się, że port został zmieniony.
To jest środowisko deweloperskie, jak je wdrożyć na linii produkcyjnej? To również bardzo proste, biorąc na przykład wdrożenie Linuksa, używając nadzorcy demonów do uruchomienia programu, dodając zmienne środowiskowe do konfiguracji startowej nadzorcy:
Odniesiej sukces na śpiewająco! Nie trzeba zmieniać ani jednej linii kodu, haha~ |