Microsoft.AspNetCore.Server.Kestrel[0] Unable to bind to http://localhost:5000 on the IPv6 loopback

小编在把.net core2.2的web应用发布至Linux服务上出现如下问题:

Microsoft.AspNetCore.Server.Kestrel[0] Unable to bind to http://localhost:5000 on the IPv6 loopback_第1张图片

在网上查找资料,网上的解决办法一般都是,配置nginx代理,设置为http://127.0.0.1:5000这种方式来解决,小编通过自己研究,提供了以下解决方案,亲测可用:

第一步:打开.net core应用程序,找到Program.cs文件,项目创建时自动生成的如下代码

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup();

替换成:

        public static IWebHostBuilder CreateWebHostBuilder(string[] args)
        {
            var host = WebHost.CreateDefaultBuilder(args)
                .UseStartup();

            var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
            if (environment != "Development")
            {
                var configuration = new ConfigurationBuilder()
                    .AddCommandLine(args)
                    .Build();

                host.UseUrls(configuration.GetSection("Urls").Value);
            }

            return host;
        }

保存,编译应用,上传发布文件至Linux服务器

第二步:在Linux服务器进入发布文件的文件夹,输入以下命令:

dotnet coreWebTest.dll --urls=http://0.0.0.0:5000 --ASPNETCORE_ENVIRONMENT=Production

回车

OK,问题解决!

你可能感兴趣的:(ASP.NET,MVC)