【问题标题】:How Run ASP.NET Core port other than 5000 on Ubuntu?如何在 Ubuntu 上运行 5000 以外的 ASP.NET Core 端口?
【发布时间】:2020-01-27 07:04:20
【问题描述】:

自 dotnet 2 以来,我一直在 ubuntu 上使用主管,并且没有遇到任何问题。自从我升级到 dotnet 版本 3.1 后,当我的主管文件始终配置为使用 5001 时,我收到一条错误消息,指出端口 5000 正在使用中。

[program:myapi]]
command=/usr/bin/dotnet /var/www/api/api.dll --server.urls "http://*:5001"
directory=/var/www/api/
autostart=true
autorestart=true
stderr_logfile=/var/log/api.err.log
stdout_logfile=/var/log/api.out.log
environment=ASPNETCORE_ENVIRONMENT=Development
user=www-data
stopsignal=INT

我有另一个在 5000 上运行的应用程序运行良好,但无法理解为什么在升级到 3.1 后端口默认为 5000,即使配置为使用 5001。

Program.cs 非常标准

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.UseStartup<Startup>();
        });
}

【问题讨论】:

  • 您说您在 5000 上运行了另一个应用程序。它在同一台服务器上吗?如果是,那么这就是端口已在使用中出现错误的原因。
  • 我在不同端口下的同一台服务器上有多个应用程序。在升级到 .net core 3.1 之前一直运行良好

标签: ubuntu .net-core supervisord


【解决方案1】:

您需要在 LaunchSettings.json 文件中更改端口。

 "{Your Project Name}": {
      "commandName": "Project",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      },
      "applicationUrl": "{http/https}://localhost:{Port No You want to change}/"
    },

或在 program.cs 中使用以下代码

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
        .UseKestrel()
        .UseContentRoot(Directory.GetCurrentDirectory())
        .UseIISIntegration()
        .UseStartup<Startup>()
        .UseUrls("{https/http}://localhost:{Port No You want to change}/");

【讨论】:

  • 谢谢,但这是在服务器上,不使用 luanchsettings
猜你喜欢
  • 1970-01-01
  • 2012-02-12
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 2019-09-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多