在ASP.NET Core 2.1项目中使用Kestrel并在UseKestrel()
中指定绑定时,会在警告级别记录一条消息:
Overriding address(es) 'http://localhost:50000/'. Binding to endpoints defined in UseKestrel() instead.
这给我们的日志增加了噪音,报告了默认的URL(因此令人困惑),因此不应警告。缺少由记录器本身过滤消息的方法,有没有一种方法可以配置Web主机构建器,以便它在启动时不记录此消息?
答案 0 :(得分:3)
launchsettings.json 和 appsetings.json
中包含的配置之间也可能发生冲突就我而言,在本地开发时, appsetings.json 中的Kestrel条目:
"kestrel": {
"endpoints": {
"http": {
"url": "http://localhost:5000"
},
"https": {
"url": "https://localhost:5001"
}
}
与 launchsettings.json 中的个人资料冲突:
"MyProject-Dev": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "http://localhost:5000;https://localhost:5001",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
我相信正确的位置是在 launchsettings.json 文件中,因此删除 appsettings.json 中的红entry条目即可解决我的问题。
答案 1 :(得分:1)
首先,如果您认为在应用程序启动时只得到一次,那么“噪音”并不是真正的噪音。因此,除非您在需要重新启动应用程序的地方做一些奇怪的事情,否则与所有其他(嘈杂的)消息相比,您可能几乎永远不会在日志中看到该行。
话虽如此,它实际上是一个有用的警告,因为它告诉您已在多个位置配置了绑定URL。因此,正确的操作是不要忽略该消息,而实际上要删除重复的配置。
在这种情况下,您在UseKestrel()
中使用显式侦听选项,因此胜过一切。因此,您应该删除其他配置。您应该在几个位置查看
ASPNETCORE_URLS
环境变量。ASPNETCORE_SERVER.URLS
环境变量。Properties/launchSettings.json
。答案 2 :(得分:1)
这是一个古老的问题,但是您可以使用"externalUrlConfiguration": true
appSettings.json 中的红est配置:
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http1AndHttp2"
},
"Endpoints": {
"HTTPS": {
"Url": "https://localhost:4433"
}
}
这是 lunchSettings.json 内容:
{
"profiles": {
"TestApplication": {
"commandName": "Project",
"launchBrowser": true,
"externalUrlConfiguration": true, //add this line
"applicationUrl": "https://localhost:5001",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
答案 3 :(得分:0)
具有同样令人讨厌的警告,并检查了环境变量和配置文件,但无法找到URL列表的来源。最后,我使用IWebHostBuilder.UseUrls()
和一个空的URL列表来消除警告。
IWebHostBuilder builder = new WebHostBuilder()
.UseUrls()
.UseKestrel()
.ConfigureKestrel(...