歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 在Linux上以服務的方式運行ASP.NET Core站點

在Linux上以服務的方式運行ASP.NET Core站點

日期:2017/3/3 11:37:18   编辑:Linux技術
更新:用supervisor是更好的解決方法,詳見 Linux下為 dotnet 創建守護進程
要在生成環境下在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站點也隨之能訪問,搞定。
[更新]
還有一種解決方法就是借助supervisor,詳見 ASP.NET Core 幫助文檔中的 Publish to a Linux Production Environment 。
Copyright © Linux教程網 All Rights Reserved