首页 > Web开发 > 详细

在Linux上用supervisor运行ASP.NET Core站点的一个坑

时间:2016-07-09 19:15:02      阅读:270      评论:0      收藏:0      [点我收藏+]

将一个ASP.NET Core站点在Linux服务器上以self-contained部署方式发布出来后,直接在终端上运行下面的命令,站点可以正常运行。

/data/AboutUs/bin/Debug/netcoreapp1.0/ubuntu.14.04-x64/publish/AboutUs

但是通过supervisor以服务方式运行却失败:

# supervisorctl status
aboutus                          FATAL      Exited too quickly (process log may have details)

查看错误日志发现是因为找不到appsettings.json文件:

# supervisorctl tail aboutus
‘appsettings.json‘ was not found and is not optional.
   at Microsoft.Extensions.Configuration.FileConfigurationProvider.Load(Boolean reload)

可appsettings.json文件明明就在那里。

在supervisor中是这样配置这个服务的( /etc/supervisor/conf.d/aboutus.conf ):

[program:aboutus]
command=/data/AboutUs/bin/Debug/netcoreapp1.0/ubuntu.14.04-x64/publish/AboutUs
autostart=true
autorestart=true
stderr_logfile=/var/log/aboutus.err.log
stdout_logfile=/var/log/aboutus.out.log
environment=Hosting__Environment=Production
user=root
stopsignal=INT
redirect_stderr=true

和在终端中运行的命令没区别,为什么在supervisor中以服务运行就不行呢?

。。。

后来想到,既然找不到appsettings.json文件,肯定是没在"/data/AboutUs/bin/Debug/netcoreapp1.0/ubuntu.14.04-x64/publish"这个路径中找,那我把当前路径设为这个路径也许能解决问题,于是在"/etc/supervisor/conf.d/aboutus.conf"添加了如下的1行配置:

directory=/data/AboutUs/bin/Debug/netcoreapp1.0/ubuntu.14.04-x64/publish

重启supervisor服务之后,问题解决。

# service supervisor restart
Restarting supervisor: supervisord.
# supervisorctl status
aboutus                          RUNNING    pid 1941, uptime 0:00:02

在Linux上用supervisor运行ASP.NET Core站点的一个坑

原文:http://www.cnblogs.com/dudu/p/5656315.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!