文章内容

2022/12/30 16:42:46,作 者: 黄兵

asp.net core 修改默认端口

最近服务器部署多个 ASP.NET Core 应用,由于 ASP.NET Core 的默认应用端口是 5000,部署多个 ASP.NET Core 会导致端口冲突,所以需要重新设置默认端口。

Projram.cs 文件内容如下:

using Jp.Api.Management.Configuration;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Serilog;
using Serilog.Events;
using System;
using System.Threading.Tasks;

namespace Jp.Api.Management
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.Title = "JP Project - Api Management";

            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Debug()
                .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
                .MinimumLevel.Override("System", LogEventLevel.Information)
                .MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Information)
                .Enrich.FromLogContext()
                .WriteTo.File(@"jpProject_sso_log-.txt", rollingInterval: RollingInterval.Day, retainedFileCountLimit: 5)
                .WriteTo.Console()
                .CreateLogger();

            var host = CreateHostBuilder(args).Build();

            Task.WaitAll(DatabaseChecker.EnsureDatabaseIsReady(host.Services.CreateScope()));

            host.Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.ConfigureLogging(builder =>
                    {
                        builder.ClearProviders();
                        builder.AddSerilog();
                    });
                    webBuilder.UseStartup<Startup>();
                });
    }
}

通过上面的代码可以看出,只需要传入一个参数,就可以重新定义 ASP.NET Core 的默认端口:

也就是这段代码:

var host = CreateHostBuilder(args).Build();

我们在 Ubuntu 上部署 ASP.NET Core 应用,使用的是 Ubuntu 服务,所以具体配置如下:

[Unit]
Description=Management .NET Web API App running on Ubuntu

[Service]
WorkingDirectory=/var/publish/api_management
ExecStart=/usr/bin/dotnet /var/publish/api_management/Jp.Api.Management.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-management
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
Environment=urls=http://*:5002

[Install]
WantedBy=multi-user.target

最主要还是这一行:

Environment=urls=http://*:5002

我们将其改成 5002 端口,就可以避免端口冲突了。


参考资料:

1、你需要知道的这几种 asp.net core 修改默认端口的方式


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - asp.net core 修改默认端口

分享到:

发表评论

评论列表