/ / Nie można ustawić portu dla aplikacji Net.Core w launchSettings.JSON - json, asp.net-core

Nie można ustawić portu dla aplikacji Net.Core w launchSettings.JSON - json, asp.net-core

Edytowałem launchSettings.JSON plik i zmienił port, tak jak.

"Gdb.Blopp": {
"commandName": "Project",
"launchBrowser": false,
"launchUrl": "http://localhost:4000",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}

Nadal jednak zaczyna się na porcie 5000. Czy to ustawienie nie jest brane pod uwagę, czy też brakuje mi czegoś innego?

Odpowiedzi:

4 dla odpowiedzi № 1

The launchSettings.json jest tylko w Visual Studio, po naciśnięciu F5 / Ctr + F5 i oferuje opcje z rozwijanego menu obok przycisku start.

wprowadź opis obrazu tutaj

Nie powinieneś też bezpośrednio edytować tego launcherSettings.json plik i zamiast tego użyj Właściwości projektu, aby zmienić rzeczy.

Jednym z powodów jest to, że jeśli zmienisz go za pomocą właściwości projektu, Visual Studio będzie również edytować pliki IIS Express (znajdujące się w .vs/config/applicationhost.config folder twojego rozwiązania).

Jeśli chcesz zmienić port, użyj kestrel .UseUrls("http://0.0.0.0:4000") (Zdobądź to z appsettings.json lub hosting.json) w Program.cs.

Jeśli nie chcesz używać na stałe, możesz również zrobić coś takiego

Stwórz hosting.json:

{
"server": "Microsoft.AspNetCore.Server.Kestrel",
"server.urls": "http://localhost:4000"
}

Program.cs

public class Program
{
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.AddJsonFile("hosting.json", optional: false)
.AddEnvironmentVariables(prefix: "ASPNETCORE_")
.Build();

var host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();

host.Run();
}
}

Możesz to również zrobić za pomocą linii poleceń (AddCommandLine połączenie jest tutaj ważne, od Microsoft.Extensions.Configuration.CommandLine" pakiet).

var config = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();

var host = new WebHostBuilder()
.UseConfiguration(config)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();

host.Run();

Następnie uruchom go przez dotnet run server.urls=http://0.0.0.0:4000.

Po uruchomieniu IIS / IISExpress port pustułki zostanie określony przez UseIISIntegration().


0 dla odpowiedzi nr 2

Od .NET Core 2.0 nie musisz tego robić hosting.json lub już zmodyfikuj uruchomienie aplikacji. Jest wbudowana obsługa ustawień portu aplikacji, wyjaśnione tutaj: https://stackoverflow.com/a/49000939/606007