在Linux上以服务的方式运行ASP.NET Core站点

Posted dudu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Linux上以服务的方式运行ASP.NET Core站点相关的知识,希望对你有一定的参考价值。

要在生成环境下在Linux服务器上跑ASP.NET Core站点,首先要解决的问题是以服务的方式运行ASP.NET Core站点,这样即使服务器重启,站点也能自动运行。

Node.js中有强大的pm2,而.NET Core目前一无所有,只能自己动手实现。摸索了一个晚上,终于使用initctl命令基于Linux的upstart实现了,在这篇博文中分享一下(试验所用的Linux服务器器是Ubuntu)。

首先在 /etc/init/ 目录中创建一个服务配置文件,比如这里是 /etc/init/dotnet-app.conf ,并在该文件中添加如下的内容:

description     "set system dotnet-app"

start on runlevel [2345]

task

script
cd /data/AboutUs && sudo dotnet run
end script

其中加粗的部分就是运行ASP.NET Core站点的命令。

接着用下面的命令启动服务:

initctl start dotnet-app

注:如果出现"initctl: Job failed to start"的错误,可以查看"/var/log/upstart/"目录中对应的错误日志,比如这里是 /var/log/upstart/dotnet-app.log 。

然后用下面的命令查看服务运行情况:

# initctl status dotnet-app
dotnet-app start/running, process 862

"start/running"说明服务启动成功,这时ASP.NET Core站点就可以正常访问了。

最后重启Linux服务器验证一下,reboot命令重启服务器,服务器启动好之后,ASP.NET Core站点也随之能访问,搞定。

以上是关于在Linux上以服务的方式运行ASP.NET Core站点的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C 在 Linux 上以编程方式杀死进程树

.NET跨平台之旅:探秘 dotnet run 如何运行 .NET Core 应用程序

linux+apache能运行asp.net程序吗?应该如何设置?

在Linux环境下使用Apache部署ASP.NET Core

无法从在 Docker (Linux) 中运行的 ASP.NET Core 连接到 SQL Server 命名实例

将 .aspx 网站转换为 ASP.NET Core