Asp.net core 移除红隼绑定警告
在ASP.NET Core 2.1项目中使用Kestrel并在Asp.net core 移除红隼绑定警告,asp.net-core,kestrel-http-server,asp.net-core-2.1,Asp.net Core,Kestrel Http Server,Asp.net Core 2.1,在ASP.NET Core 2.1项目中使用Kestrel并在UseKestrel()中指定绑定时,会在警告级别记录一条消息: 覆盖地址”http://localhost:50000/'. 而是绑定到UseKestrel()中定义的端点。 这给我们的日志增加了噪音,报告了一个默认的(因此令人困惑的)URL,不应该是一个警告。如果无法通过日志记录器本身过滤消息,有没有方法来配置Web主机生成器,这样它就不会在启动时记录这个? 首先,如果你认为在应用程序启动时只得到一次,那么“噪声”就不是真正的噪
UseKestrel()
中指定绑定时,会在警告级别记录一条消息:
覆盖地址”http://localhost:50000/'. 而是绑定到UseKestrel()中定义的端点。
这给我们的日志增加了噪音,报告了一个默认的(因此令人困惑的)URL,不应该是一个警告。如果无法通过日志记录器本身过滤消息,有没有方法来配置Web主机生成器,这样它就不会在启动时记录这个? 首先,如果你认为在应用程序启动时只得到一次,那么“噪声”就不是真正的噪音。因此,除非你在需要重新启动应用程序的地方做了一些奇怪的事情,否则与所有其他(噪音更大的)消息相比,你可能永远不会在日志中看到这一行 尽管如此,它实际上是一个有用的警告,因为它告诉您已经在多个位置配置了绑定URL。因此,正确的操作不是忽略该消息,而是实际删除重复的配置 在本例中,您将显式侦听选项与
UseKestrel()
一起使用,因此这将胜过一切。因此,您应该删除其他配置。您可以在以下几个位置进行查看:
环境变量ASPNETCORE\u URL
- 遗留
环境变量ASPNETCORE\u SERVER.url
Properties/launchSettings.json
- 也有同样的略显恼人的警告,并检查了环境变量和配置文件,但无法找到url列表的来源。最后,我使用带有空URL列表的
IWebHostBuilder.UseUrls()
来消除警告
IWebHostBuilder builder = new WebHostBuilder()
.UseUrls()
.UseKestrel()
.ConfigureKestrel(...
它也可能是launchsettings.json和appsetings.json中包含的配置之间的冲突 在我的例子中,在本地开发时,appsetings.json中的Kestrel条目:
"kestrel": {
"endpoints": {
"http": {
"url": "http://localhost:5000"
},
"https": {
"url": "https://localhost:5001"
}
}
与启动设置中的配置文件冲突。json:
"MyProject-Dev": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "http://localhost:5000;https://localhost:5001",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http1AndHttp2"
},
"Endpoints": {
"HTTPS": {
"Url": "https://localhost:4433"
}
}
我认为正确的位置是launchsettings.json文件,因此删除appsettings.json中的kestrel条目解决了我的问题 这是一个老问题,但您可以使用
“externalUrlConfiguration”:true
解决launchSettings.json和appSettings.json之间的冲突
appSettings.json中的Kestrel配置:
"MyProject-Dev": {
"commandName": "Project",
"launchBrowser": true,
"applicationUrl": "http://localhost:5000;https://localhost:5001",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
"Kestrel": {
"EndpointDefaults": {
"Protocols": "Http1AndHttp2"
},
"Endpoints": {
"HTTPS": {
"Url": "https://localhost:4433"
}
}
这是午餐设置。json内容:
{
"profiles": {
"TestApplication": {
"commandName": "Project",
"launchBrowser": true,
"externalUrlConfiguration": true, //add this line
"applicationUrl": "https://localhost:5001",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
完美的这就是我问题的目的,因为我没有故意定义/记得定义默认绑定URL。在这种情况下,严重性更有意义。我理解您关于日志条目的观点,但是,由于我们正在登录数据库,非开发人员偶尔会分析这些日志,我希望尽量减少记录任何无关的信息(现在看来不是这样);在Visual Studio中创建ASP.NET核心项目时,将定义默认URL。我现在觉得有点傻。我得到了同样的警告,我在哪里可以找到其他可能导致这种情况的环境变量?@MarioTacke-在我的例子中,这是一个愚蠢的错误。从内存中,在VS调试首选项中,我刚刚显式地将启动URL设置为使用不同的端口。我已从launchSettings.json中删除了默认URL,并且没有我定义的环境变量。但我还是得到了这个警告。答案中的列表是否完整?这是我的问题。谢谢