之前学习了一些新的东西,所以做了一个基于.NET Core 3.1 开发的微服务 WebAPI。弄了一个仿今日头条的 app来使用这些api。现在将webapi发布至Windows Server 2019 并且在系统启动时微服务。
在此之前先介绍一下手动启动微服务所需要的简单步骤:
- 由于微服务基于consul做的,所以要先启动consul;
- 然后有使用的redis缓存,也启动redis缓存;
- 然后在各自webapi 项目文件夹路径下打开命令行 运行 .NET Core api项目;
我的webapi分4个,三个是微服务,一个是网关:
为了方便给每个步骤都编写一个bat 批处理文件 (先新建文档,然后修改文档后缀名为.bat):
- 启动consul命令:
title consul
consul agent -dev
- 启动redis命令:
title redis_1215
redis-server.exe redis.windows-service.conf
- 启动微服务ToDayService命令:
title todayservice_1000
dotnet ToDayServer.dll --urls="http://*:1000" --ip="127.0.0.1" --port=1000 --start="todayservice_1000"
- 启动微服务UserService命令:
title userservice_2000
dotnet userservice.dll --urls="http://*:2000" --ip="127.0.0.1" --port=2000
- 启动微服务JournalismService命令:
title journalismservice_3000
dotnet JournalismService.dll --urls="http://*:3000" --ip="127.0.0.1" --port=3000
- 启动网关服务OcelotGateway命令:
title ocelotgateway_555
dotnet ocelotgateway.dll --urls="http://*:555" --ip="127.0.0.1" --port=555
完成以上这些之后再写一个批处理(启动微服务环境.bat ),用来运行这些批处理:
title 微服务环境
start cmd /k C:\Users\Administrator\Desktop\启动consul服务.bat
choice /t 3 /d y
cd/d C:\"Program Files"\Redis-x64-5.0.9
start cmd /k C:\"Program Files"\Redis-x64-5.0.9\start.bat
choice /t 3 /d y
cd/d C:\FTP\File\IIS\app_api\ToDayServer\ToDayService
start cmd /k C:\FTP\File\IIS\app_api\ToDayServer\ToDayService\todayservice_start_1000.bat
choice /t 3 /d y
cd/d C:\FTP\File\IIS\app_api\ToDayServer\UserService
start cmd /k C:\FTP\File\IIS\app_api\ToDayServer\UserService\userservice_start_2000.bat
choice /t 3 /d y
cd/d C:\FTP\File\IIS\app_api\ToDayServer\JournalismService
start cmd /k C:\FTP\File\IIS\app_api\ToDayServer\JournalismService\journalismservice_start_3000.bat
choice /t 3 /d y
cd/d C:\FTP\File\IIS\app_api\ToDayServer\OcelotGateway
start cmd /k C:\FTP\File\IIS\app_api\ToDayServer\OcelotGateway\ocelotgateway_start_555.bat
好了现在可以双击运行这个启动微服务环境.bat ,手动启动这一服务了。
然后需要在服务器启动并登陆账号后运行这个批处理程序,需要添加任务计划:
- 启动服务器管理器,打开 工具->任务计划程序:
- 右键任务计划程序,选择 创建基本任务:
- 填写名称和描述然后下一步:
- 选择“当前用户登陆时”然后下一步:
- 选择希望该任务执行什么操作,选择“启动程序”然后下一步:
- 选择程序点击浏览选择刚刚创建的启动微服务环境.bat 然后下一步:
- 勾选当“完成”时,打开此任务属性的对话框,然后点击完成:
- 弹出属性框,选择触发器选项卡,然后双击触发器:
- 弹出编辑触发器窗体,勾选激活然后点击确定,大功告成:
这样每次登陆账号时就会运行这个批处理程序了。