.NET Core Web API更改默认端口(5000)

时间:2019-06-04 10:54:41

标签: linux deployment .net-core

.NET Core 2.2中有两个应用程序。我需要在Centos7上同时托管这两者。其中一个可以在端口5000上正常工作。我正在尝试第二次运行,并且将端口5000更改为另一个存在问题。在Program.cs中,我更改了:

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseUrls("http://localhost:5200")
            .UseKestrel()
            .UseStartup<Startup>();

但是它不起作用。 我通过服务运行应用程序。它是我的配置

    [Unit]
    Description=ASP.Net Project

    [Service]
    WorkingDirectory=/home/piotrekb3/etc/slotsapi
    ExecStart=/usr/bin/dotnet /home/piotrekb3/etc/slotsapi/Slots.WebApi.dll
    Restart=always
    RestartSec=10
    SyslogIdentifier=SlotsApi
    User=piotrekb3
    Environment=ASPNETCORE_ENVIRONMENT=Production
    Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

    [Install]
    WantedBy=multi-user.target

我通过命令运行:

systemctl start slotsapi.service

我尝试过在lanuchSettings.json中进行更改:

"Slots.WebApi": {
  "commandName": "Project",
  "launchBrowser": true,
  "launchUrl": "api/values",
  "applicationUrl": "https://localhost:5003;http://localhost:5004",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  }
}

但是什么都没有。 知道我该如何解决我的问题吗?

1 个答案:

答案 0 :(得分:0)

您的第一种方法是正确的,但是您可以将端口添加到配置文件中。如果要在NGINX后面部署它,则需要同时指定HTTP和HTTPS。

这是我的代码:

public class Program
{
    private static IConfiguration configuration;
    public static void Main(string[] args)
    {
        var builder = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: false);

        configuration = builder.Build();

        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .ConfigureKestrel((context, options) =>
            {
                // Set properties and call methods on options
            })
            .UseKestrel()
            .UseUrls($"http://localhost:{configuration["Port"]};https://localhost:{Convert.ToInt32(configuration["Port"])+1}")
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseStartup<Startup>();
}

此网站由Kestrel使用以下方法托管: https://www.multilabs.org

别忘了向您的appsettings.json添加配置:“端口”:5200