删除红est绑定警告

时间:2018-08-08 04:57:43

标签: asp.net-core kestrel-http-server asp.net-core-2.1

在ASP.NET Core 2.1项目中使用Kestrel并在UseKestrel()中指定绑定时,会在警告级别记录一条消息:

Overriding address(es) 'http://localhost:50000/'. Binding to endpoints defined in UseKestrel() instead.

这给我们的日志增加了噪音,报告了默认的URL(因此令人困惑),因此不应警告。缺少由记录器本身过滤消息的方法,有没有一种方法可以配置Web主机构建器,以便它在启动时不记录此消息?

4 个答案:

答案 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

解决 launchSettings.json appSettings.json 之间的冲突

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(...