Obecnie pracuję nad.Net Core WebAPI Project (netcore 2.0) i chcę zdefiniować adres URL, w którym działa moja aplikacja w pliku appsettings.json. Następnie używam następującego kodu w moim pliku Program.cs:
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json").Build();
var url = config.GetSection("WebAppSettings").GetValue<string>("Url");
var host = new WebHostBuilder()
.UseUrls(url)
.UseIISIntegration()
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.ConfigureAppConfiguration((context, configBuilder) =>
{
configBuilder
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddEnvironmentVariables();
})
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.SetMinimumLevel(LogLevel.Trace);
})
.UseStartup<Startup>()
.UseNLog()
.Build();
host.Run();
Mój plik appsettings.json:
{
"WebAppSettings": {
"Url": "http://localhost:5023"
}
}
Jednak po uruchomieniu aplikacji jest to jedynedostępne na porcie 5022 (wcześniej ustawiłem to, ale później zmieniłem na 5023). Kiedy zaglądam do moich właściwości projektu i przechodzę do podmenu "Debugowanie", wskazuje on 5022 jako port. Próbowałem usunąć tę właściwość, ale jest to wymagane pole.
Jak mogę zmusić Visual Studio do użycia portu, który ustawiłem w pliku appsettings.json, bez skracania moich ustawień?
Odpowiedzi:
1 dla odpowiedzi № 1Używa IIS Express launchSettings.json
, która jest ustawiana za pomocą wspomnianych ustawień właściwości projektu. UseUrls
dotyczy tylko programu Visual Studio / IIS Express.