ASP.NET Core 项目升级到 .NET 8 之后,日志中出现下面的警告:
Overriding HTTP_PORTS '"80"' and HTTPS_PORTS '""'. Binding to values defined by URLS instead '"http://*:80"'.
请问如何消除这个警告?
Dockerfile 中配置了下面的环境变量
ENV ASPNETCORE_HTTP_PORTS=80
就是 Dockerfile 中设置的环境变量引起的
ENV ASPNETCORE_HTTP_PORTS=80
改为下面的环境变量设置就解决了
ENV ASPNETCORE_URLS="http://*:80"
ENV ASPNETCORE_HTTP_PORTS=""
参考链接:
这个警告表明在ASP.NET Core项目升级到.NET 8之后,存在对HTTP和HTTPS端口的默认绑定方式的变化。警告指出正在覆盖HTTP_PORTS和HTTPS_PORTS的默认值,并建议使用通过URLS定义的端口值进行绑定。
在.NET 8中,ASP.NET Core引入了一个新的方式来配置HTTP和HTTPS绑定端口,通过URLS环境变量进行配置。这是为了提供更灵活的配置选项,以便更好地支持容器化环境和云环境等场景。
要解决这个警告,你可以按照以下步骤进行操作:
示例:
public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseUrls("http://*:80");
webBuilder.UseStartup<Startup>();
});
}
移除旧的端口配置: 移除任何旧的HTTP_PORTS和HTTPS_PORTS配置,因为它们在.NET 8中已经不再建议使用。
重启应用程序: 保存更改并重新启动你的应用程序,确保警告不再出现。
通过采取这些步骤,你应该能够适应.NET 8的新端口绑定方式,解决这个警告。
还有一种写法,但是都没有用,日志还是会出现
var builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseUrls("http://*:80");
我问问chat gpt去!
– echo_lovely 10个月前