Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 移除红隼绑定警告_Asp.net Core_Kestrel Http Server_Asp.net Core 2.1 - Fatal编程技术网

Asp.net core 移除红隼绑定警告

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主机生成器,这样它就不会在启动时记录这个? 首先,如果你认为在应用程序启动时只得到一次,那么“噪声”就不是真正的噪

在ASP.NET Core 2.1项目中使用Kestrel并在
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.jsonappsetings.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.jsonappSettings.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,并且没有我定义的环境变量。但我还是得到了这个警告。答案中的列表是否完整?这是我的问题。谢谢