• .NET 开发一个服务器 应用管理工具


    一:背景

      1、Anno.Deploy

      Anno.Deploy可以和 Anno集成使用,用于部署新的服务、启动服务、停止服务、清理服务。也可以单独使用,用于守护程序。

    使用方法

    1、和Anno集成使用

     

    2、单独使用

        annoDeploy status                 查看程序状态
        annoDeploy start  [workingName]   启动程序
        annoDeploy stop   [workingName]   停止程序
    

      

    annoDeploy status 查看程序状态

       HelloWorldService21                 UP        pid 24864   admin
       HelloWorldService22                 DOWN      pid -1      admin  
    

      

    annoDeploy start [workingName] 启动程序

    [17:44:15:6832]: HelloWorldService21 已启动!
                        HelloWorldService21                 UP        pid 14744   admin  
    

      

    annoDeploy stop [workingName] 停止程序

     [17:45:24:2212]: HelloWorldService21 已停止!
                         HelloWorldService21                 DOWN      pid -1      admin  
    

      

    3、annoDeploy 配置文件

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <!--0,0 第一位是 工作站,第二位数据中心
      (所有的 AnnoService 的 两位数不能重复例如不能存在【1,2】【1,2】)
      可以存在【1,2】【2,1】
      -->
      <IdWorker>0,1</IdWorker>
      <!--App名称-->
      <AppName>Anno.Deploy</AppName>
      <!--监听端口-->
      <Port>7999</Port>
      <!--权重-->
      <Weight>1</Weight>
      <!--功能 非Anno.Plugs  加入方式-->
      <FuncName></FuncName>
      <!--忽略的功能 Trace,Logic-->
      <IgnoreFuncName></IgnoreFuncName>
      <!--超时时间毫秒-->
      <TimeOut>300000</TimeOut>
      <!--注册到的目标-->
      <Ts Ip="127.0.0.1" Port="7010"/>
      <IocDll>
    
      </IocDll>
      <appSettings>
        <!-- 程序放置的目录-->
        <add key="work_directory" value="E:AnnoDeployStorage"/>
        <!-- 和Anno集成使用的时候的口令-->
        <add key="deploySecret" value="duyanming"/>
      </appSettings>
    </configuration>
    

      

    4、annoDeploy 配置一个守护程序

    如果是通过在线面板部署的程序不需要此步骤

    在工作目录下面找到 proc 文件夹,下面的每一个文件都代表一个程序 新建一个文件 HelloWorldService21 内容:

    {
        "Running":true,
        "AutoStart":"1",
        "AnnoProcessDescription":"admin",
        "ReStartErrorCount":0,
        "Id":24628,
        "WorkingDirectory":"HelloWorldService21",
        "Cmd":"dotnet HelloWorldService.dll -p 7029",
        "NodeName":"Anno.Deploy"
    }
    

      

    "Running":true, //程序是否在运行,初次配置设置为 false
    "AutoStart":"1",//是否自动启动
    "AnnoProcessDescription":"admin",//程序描述
    "ReStartErrorCount":0,//重启失败次数 初次配置设置为 0
    "Id":-1,//程序进程Id 初次配置设置为 -1
    "WorkingDirectory":"HelloWorldService21",//程序名称 (程序需要放置到work_directory目录下名字为HelloWorldService21 配置文件名称和程序文件夹名称一致)
    "Cmd":"dotnet HelloWorldService.dll -p 7029",//启动命令
    "NodeName":"Anno.Deploy"//annoDeploy 的名称
    

      

    后面在带领大家开发一个部署代理服务,希望大家多多关注,多多转发。

    github Anno:https://github.com/duyanming/Anno.Core  

    gitee      :https://gitee.com/dotnetchina/anno.core

    Anno管理面板Viper:https://github.com/duyanming/Viper  

    体验地址:http://49.232.112.70/

    欢迎加入QQ群:478399354 ,到这里我们互为师长项目学习。

  • 相关阅读:
    DotNetty是微软的Azure团队,使用C#实现的Netty的版本发布
    C# 与 .NET Framework 对应关系
    C# 基于Directshow.Net lib库 USB摄像头使用DirectShow.NET获取摄像头视频流
    Actor模型的状态(State)+行为(Behavior)+邮箱(Mailbox)
    c# 无法加载DLL:找不到指定的模块(异常来自HRESULT:0X8007007E)
    管道式编程(Pipeline Style programming)
    Word文档转Markdown插件(Windows)
    纯Java实现定时任务(转)
    Spring MVC使用Schedule实现定时任务
    Spring Boot使用Schedule实现定时任务
  • 原文地址:https://www.cnblogs.com/duyanming/p/15394003.html
Copyright © 2020-2023  润新知