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 № 1Das 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.
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