如何在 Ubuntu 上运行已经开发的 ASP.NET Core 应用程序?

Mac*_*akM 4 c# ubuntu .net-core asp.net-core

在 Ubuntu 上运行现有 ASP.NET Core 应用程序的最简单方法是什么?我发现了这个:https : //docs.microsoft.com/en-us/aspnet/core/publishing/linuxproduction但我坚持这个:在此处输入图片说明

我已发布该应用程序并将其复制到我的 Ubuntu,但我不知道如何“运行该应用程序”。任何帮助将不胜感激。

Dav*_*idG 5

它真的就像执行一样简单:

dotnet path/to/your/application.dll
Run Code Online (Sandbox Code Playgroud)

然而,对于一个网站,你真的想用某种初始化系统来管理它。您链接到的 doc 文件告诉您如何使用Systemd启动您的应用程序。

  1. 创建一个服务定义文件,例如 /etc/systemd/system/myapp.service
  2. 将文件编辑为如下所示,必要时替换相关部分:

    [Unit]
    Description=Example .NET Web API Application running on Ubuntu
    
    [Service]
    WorkingDirectory=/var/path/to/your/app
    ExecStart=/usr/bin/dotnet /var/path/to/your/app/hellomvc.dll
    Restart=always
    RestartSec=10  # Restart service after 10 seconds if dotnet service crashes
    SyslogIdentifier=dotnet-example
    User=www-data
    Environment=ASPNETCORE_ENVIRONMENT=Production 
    
    [Install]
    WantedBy=multi-user.target
    
    Run Code Online (Sandbox Code Playgroud)
  3. 像这样启用服务:

    systemctl enable myapp.service
    
    Run Code Online (Sandbox Code Playgroud)
  4. 启动服务:

    systemctl start myapp.service
    
    Run Code Online (Sandbox Code Playgroud)
  5. 检查您的服务是否正在运行:

    systemctl status myapp.service
    
    Run Code Online (Sandbox Code Playgroud)

如果您有另一个 init 系统,说明当然会大不相同。

注意:这只会启动在您的机器上运行的应用程序。如果您打算将其提供给公众,那么强烈建议您使用 Nginx 等代理,因为 Microsoft 尚未将 Kestrel 认证为边缘服务器。