/ / Der Port für die Net.Core-Anwendung kann in launchSettings.JSON nicht festgelegt werden - json, asp.net-core

Der Port für die Anwendung "Net.Core" kann nicht in "launchSettings.JSON" festgelegt werden - json, asp.net-core

Ich habe bearbeitet launchSettings.JSON Datei und änderte den Port so.

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

Es beginnt jedoch immer noch auf Port 5000. Wird diese Einstellung außer Acht gelassen oder fehlt mir etwas anderes?

Antworten:

4 für die Antwort № 1

Das launchSettings.json ist nur von Visual Studio, wenn Sie F5 / Ctr + F5 drücken und bietet die Optionen aus dem Pull-Down-Menü neben dem Start-Button.

Bildbeschreibung hier eingeben

Auch sollten Sie nicht direkt das bearbeiten launcherSettings.json Datei und verwenden Sie stattdessen die Projekteigenschaften, um Dinge zu ändern.

Ein Grund dafür ist, dass Visual Studio, wenn Sie es über die Projekteigenschaften ändern, auch die IIS Express-Dateien bearbeiten wird (in der .vs/config/applicationhost.config Ordner Ihrer Lösung).

Wenn Sie den von Turmfalke verwendeten Port ändern möchten, verwenden Sie .UseUrls("http://0.0.0.0:4000") (Bekomme es entweder von appsettings.json oder hosting.json) im Program.cs.

Wenn Sie hardcoded nicht verwenden möchten, können Sie auch so etwas tun

Ein ... kreieren 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();
}
}

Sie können das auch über die Befehlszeile (AddCommandLine Anruf ist hier wichtig, ab Microsoft.Extensions.Configuration.CommandLine" Paket).

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

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

host.Run();

Dann führe es via dotnet run server.urls=http://0.0.0.0:4000.

Wenn Sie IIS / IISExpress ausführen, wird der Turmnetz-Port von bestimmt UseIISIntegration().


0 für die Antwort № 2

Seit .NET Core 2.0 müssen Sie nicht warten hosting.json oder ändern Sie App Start nicht mehr. Es gibt eine integrierte Unterstützung für das Einstellen des App-Ports, die hier erklärt wird: https://stackoverflow.com/a/49000939/606007