zoukankan      html  css  js  c++  java
  • 在Linux上用supervisor运行ASP.NET Core站点的一个坑

    将一个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

    [相关博文]

    ASP.NET Core重写个人博客站点小结

  • 相关阅读:
    字符串替换
    字符串查找
    字符串比较
    字节与字符串相互转换
    1365. How Many Numbers Are Smaller Than the Current Number
    1486. XOR Operation in an Array
    1431. Kids With the Greatest Number of Candies
    1470. Shuffle the Array
    1480. Running Sum of 1d Array
    【STM32H7教程】第56章 STM32H7的DMA2D应用之刷色块,位图和Alpha混合
  • 原文地址:https://www.cnblogs.com/dudu/p/5656315.html
Copyright © 2011-2022 走看看