/ / Nie je možné nastaviť port pre aplikáciu Net.Core v launchSettings.JSON - json, asp.net-core

Nie je možné nastaviť port pre aplikáciu Net.Core v launchSettings.JSON - json, asp.net-core

Editoval som launchSettings.JSON súbor a zmenil port tak ako tak.

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

Stále začína na portu 5000, hoci. Je toto nastavenie bez ohľadu na to všetko, alebo mi chýba niečo iné?

odpovede:

4 pre odpoveď č. 1

Na launchSettings.json je nielen Visual Studio, keď ste stlačte kláves F5 / Ctr F5 a ponúka voľbu z rozbaľovacej ponuky vedľa tlačidla Štart.

tu zadajte popis obrázku

Tiež by ste nemal "t priamo upraviť, že launcherSettings.json súboru a namiesto toho použite vlastnosti projektu meniť veci.

Jedným z dôvodov je, že ak si ho zmeniť prostredníctvom vlastnosti projektu, Visual Studio bude tiež upraviť súbory IIS Express (nachádza sa v .vs/config/applicationhost.config Adresár vášho riešenia).

Ak chcete zmeniť port kestrel používa, použiť .UseUrls("http://0.0.0.0:4000") (si to buď od appsettings.json alebo hosting.json) v Program.cs.

Ak nemusíš "t chcete použiť napevno, môžete si tiež urobiť niečo takého

Vytvoriť 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();
}
}

Môžete si tiež urobiť to cez príkazový riadok)AddCommandLine hovor je dôležité si z Microsoft.Extensions.Configuration.CommandLine" balík).

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

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

host.Run();

Spustite ho cez dotnet run server.urls=http://0.0.0.0:4000.

Pri spustení IIS/IISExpress kestrel prístavu určí UseIISIntegration().


0 pre odpoveď č. 2

Pretože .NET Core 2.0 don "t majú zachovať hosting.json alebo upraviť spustenie aplikácie už. Nie je zabudovaná podpora pre nastavenie portu aplikácie, vysvetlené tu: https://stackoverflow.com/a/49000939/606007