W przypadku korzystania WebHostBuilder
z Main
punktu wejścia, jak mogę określić port, z którym się łączy?
Domyślnie używa 5000.
Uwaga: to pytanie dotyczy nowego interfejsu API platformy ASP.NET Core (obecnie w wersji 1.0.0-RC2).
.net
asp.net-core
Drew Noakes
źródło
źródło
launchSettings.json
zProperties
folderu. Możesz zmienić port wlaunchUrl
.hosting.json
(patrz odpowiedź ), które były domyślnie używane w RC1 i wystarczy tylko dodać.AddJsonFile("hosting.json", optional: true)
(patrz tutaj )hosting.json
lub wiersza polecenia do konfigurowania powiązania.Odpowiedzi:
W programie ASP.NET Core 3.1 istnieją 4 główne sposoby określania niestandardowego portu:
--urls=[url]
:appsettings.json
, dodającUrls
węzeł:ASPNETCORE_URLS=http://localhost:5001/
.UseUrls()
, jeśli wolisz robić to programowo:Lub, jeśli nadal używasz konstruktora hostów internetowych zamiast ogólnego konstruktora hostów:
źródło
UseUrls
jest podejściem zalecanym przez zespół ASP.NET w przypadku scenariuszy z własnym hostingiem (oczywiście sama wartość nie musi być zakodowana na stałe). Powiedziałem, że zaktualizowałem swoją odpowiedź, aby wspomnieć, jak można to zrobić za pomocą konstruktora konfiguracji.hosting.json
. Jedyne, co trzeba zrobić, to wymusić odczytanie informacji w RC2 (patrz ogłoszenie ).using Microsoft.Extensions.Configuration.CommandLine;
Możesz wstawić sekcję Kestrel do pliku asp.net core 2.1+ appsettings.json.
źródło
dotnet publish
.Podążaj za odpowiedzią, aby pomóc każdemu w zrobieniu tego dzięki integracji dokera VS. Musiałem zmienić port 8080, aby uruchomić za pomocą „elastycznego” środowiska w Google Appengine.
W pliku Dockerfile będziesz potrzebować:
i musisz również zmodyfikować port w docker-compose.yml:
źródło
Alternatywnym rozwiązaniem jest użycie
hosting.json
katalogu głównego projektu.A potem w
Program.cs
źródło
urls
- dzięki @ManishJainMożesz podać adres URL hostingu bez żadnych zmian w swojej aplikacji.
Utwórz
Properties/launchSettings.json
plik w katalogu projektu i wypełnij go czymś takim:dotnet run
polecenie powinno wybraćlaunchSettings.json
plik i wyświetlić go w konsoli:Więcej informacji: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments
źródło
[ProjectRoot]/Properties/launchSettings.json
, ale piękne jest to, że działa bez żadnych problemów.dotnet run
potrzebujesz dostępu do kodu źródłowego.Jeśli używasz
dotnet run
źródło
Powyżej rdzenia .net 2.2 metoda Główna obsługa argumentów z WebHost.CreateDefaultBuilder (args)
Możesz zbudować swój projekt i
bin
uruchomić polecenie w ten sposóblub z wieloma adresami URL
źródło
Podczas hostowania w kontenerach dokerów (dla mnie wersja linux) może pojawić się komunikat „Odmowa połączenia”. W takim przypadku możesz użyć adresu IP 0.0.0.0, co oznacza „wszystkie adresy IP na tym komputerze” zamiast sprzężenia zwrotnego hosta lokalnego, aby naprawić przekierowanie portów.
źródło
Alternatywnie można określić port, uruchamiając aplikację za pomocą wiersza polecenia.
Po prostu uruchom polecenie:
Uwaga: gdzie 5001 to port, na którym chcesz uruchomić.
źródło
W .Net Core 3.1 wystarczy postępować zgodnie z Microsoft Doc, że jest to dość proste: kestrel-aspnetcore-3.1
Podsumowując:
Dodaj poniższą sekcję ConfigureServices do CreateDefaultBuilder na
Program.cs
:Dodaj poniższą podstawową konfigurację do
appsettings.json
pliku (więcej opcji konfiguracji w artykule Microsoft):Otwórz CMD lub konsolę w swoim folderze binarnym Publikuj / Debuguj / Zwolnij i uruchom:
Zapraszamy do odkrywania swojej witryny / interfejsu API na stronie http: // localhost: 5002
źródło
Przejdź do właściwości / launchSettings.json i znajdź swoją nazwę aplikacji, a pod nią znajdź applicationUrl. zobaczysz, działa localhost: 5000, zmień go na cokolwiek chcesz. a następnie uruchomić dotnet run ...... hurra
źródło
Rozwiązałem problem z portem w Net Core 3.1, używając następujących
W Program.cs
Możesz uzyskać dostęp do aplikacji za pomocą
źródło