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

标签 c# ubuntu asp.net-core .net-core

在 Ubuntu 上运行现有 ASP.NET Core 应用程序的最简单方法是什么?我发现了这个:https://learn.microsoft.com/en-us/aspnet/core/publishing/linuxproduction但我坚持这个:enter image description here

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

最佳答案

这真的和执行一样简单:

dotnet path/to/your/application.dll

但是,对于一个网站,您确实希望使用某种初始化系统来管理它。您链接到的文档文件告诉您如何使用 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
    
  3. 像这样启用服务:

    systemctl enable myapp.service
    
  4. 启动服务:

    systemctl start myapp.service
    
  5. 检查您的服务是否正在运行:

    systemctl status myapp.service
    

如果你有另一个初始化系统,指令当然会大不相同。

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

关于c# - 如何在 Ubuntu 上运行已经开发的 ASP.NET Core 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43614988/

相关文章:

c# - code beside 和 code behind 的区别

c# - 工厂模式的首选实现方式?

bash - 从 Windows cmd 在 bash 中调用 rsync

c# - Microsoft 报表查看器中的列重复方向

ubuntu - raco 文档更改默认的 Firefox 浏览器

python-3.x - Python 卡在计算中

c# - 在 Asp.net Core :Invalid setup on a non-virtual (overridable in VB) 中使用 Moq 的问题

c# - .NET Core 1.0,枚举所有实现基类的类

cookies - asp.net core session 不工作,在响应头中设置cookie但未在浏览器中设置

c# - TwilioRestClient SendMessage 未解析