zoukankan      html  css  js  c++  java
  • 发布自己的第一版asp.net core的RESTful接口程序

    使用window开发一个简单的asp.net Core的RESTfull程序,网上很多,这里不说,我是直接使用IDE自己生成的项目来发布的。没有修改过主要代码。在IDE里发布到本地目录,得到类似文件

    好了,去linux服务器上安装dotnet core

    https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial#install

    注意选择需要操作系统

    我的CentOS7上安装,只需要

    #sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
    #sudo yum install dotnet-sdk-2.2

    结果提示

    File "/usr/bin/yum", line 30 
    
    except KeyboardInterrupt, e: 
    
                                             ^
    
    SyntaxError: invalid syntax

    网上查了,应是升级到了python3,yum用的是python2,于是

    $ vi /usr/bin/yum

    将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2.7"

    继续录入安装命令。成功!

    把发布的文件夹上传到linux上,在当前目录下执行如下命令

    dotnet MyPriceApi.dll

    到此我都比较顺利。但以上命令在断开终端后,程序会退出。所以还需要弄个守护进程。结果网上的信息比较旧的,搞得很是狼狈。最后在参考以下文章,

    https://www.xncoding.com/2016/10/12/linux/supervisor.html

    才得到完成。这里详细说说

    安装配置supervisor

    我使用以下命令安装

    yum install  supervisor

    安装完成之后,可以运行 echo_supervisord_conf 生成默认的配置文件:

    echo_supervisord_conf > /etc/supervisord.conf

    修改配置文件,方便导入子目录下的所有conf文件

    vi /etc/supervisord.conf

    将文件尾部的files一段修改如下

    [include]
    files = supervisord.d/*.conf

    之后在/etc/supervisord.d目录下创建我自己其中的一个项目配置文件priceApi.conf,内容如下:

    [program: MyPriceApi]
    command=dotnet MyPriceApi.dll ; 运行程序的命令
    directory=/opt/publish/ ; 命令执行的目录
    autorestart=true ; 程序意外退出是否自动重启
    autostart=true ; 是否自动启动
    stderr_logfile=/var/log/MyPriceApi.err.log ; 错误日志文件
    stdout_logfile=/var/log/MyPriceApi.out.log ; 输出日志文件
    environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
    user=root ; 进程执行的用户身份
    stopsignal=INT
    startsecs=1 ; 自动重启间隔

    将文中开始说到的文件都上传到linux的/opt/publish目录下,启动守护进程程序

    systemctl start supervisord.service

    期间还遇到过服务器曾升级过python,部分命令支行出错,需要vi相关命令文件,修改头的一行#!/usr/bin/python修改为#!/usr/bin/python2.7

    好了,第一版就这样了,以后主程序修改后,可以直接上传测试期间生成的相关dll,并执行重启就行了

    #supervisorctl restart MyPriceApi

    最后需要配置一下服务的自启动

    systemctl enable supervisord.service
    

      

  • 相关阅读:
    C# Tips Written By Andrew Troelsen
    ASP.NET:性能与缓存
    New Feature In C# 2.0
    .NET Remoting中的通道注册
    通过应用程序域AppDomain加载和卸载程序集
    Some BrainTeaser in WinDev, Can you Solve them?
    ExtJs学习笔记(24)Drag/Drop拖动功能
    wap开发体会
    关于”System.ServiceModel.Activation.WebServiceHostFactory“与"<webHttp/>"以及RestFul/启用了Ajax的WCF服务
    验证码无刷新更换
  • 原文地址:https://www.cnblogs.com/kevin-Y/p/10178306.html
Copyright © 2011-2022 走看看