我目前正在开发一个.Net Core WebAPI项目(netcore 2.0),我想在我的appsettings.json文件中定义我的应用程序运行的URL。然后我在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();
我的appsettings.json文件:
{
"WebAppSettings": {
"Url": "http://localhost:5023"
}
}
然而,当我运行我的应用程序时,它只能在端口5022上访问(我之前将其设置为此,但之后将其更改为5023)。当我查看我的项目属性并转到&#34; Debug&#34;子菜单,它表示5022为港口。我尝试删除此属性,但它是必填字段。
那么如何强制Visual Studio使用我在appsettings.json文件中设置的端口而不会搞砸我的设置呢?
答案 0 :(得分:1)
IIS Express使用launchSettings.json
,它本身是通过您提到的项目属性设置设置的。 UseUrls
仅适用于Visual Studio / IIS Express之外。