windows 服务中托管asp.net core
在windows 服务中托管asp.net core
sdk 2.1.300
1、添加运行标识符xml <propertygroup> <targetframework>netcoreapp2.1</targetframework> <runtimeidentifier>win7-x64</runtimeidentifier> </propertygroup>
2、添加包引用 dotnet add package microsoft.aspnetcore.hosting.windowsservices -v 2.1.0 -s
3、确认导入是否成功xml <itemgroup> <packagereference include="microsoft.aspnetcore.app" /> <packagereference include="microsoft.aspnetcore.hosting.windowsservices" version="2.1.0" /> </itemgroup>
4、修改program main 函数
public static void main(string[] args) { createwebhostbuilder(args).build().runasservice(); } public static iwebhostbuilder createwebhostbuilder(string[] args) { var pathtoexe = process.getcurrentprocess().mainmodule.filename; var pathtocontentroot = path.getdirectoryname(pathtoexe); return webhost.createdefaultbuilder(args) .usekestrel() .useurls("http://*:5001", "http://*:5002") .configureappconfiguration((context, config) => { // configure the app here. }) .usecontentroot(pathtocontentroot) .usestartup<startup>(); }
5、发布运行
dotnet publish -c release -o "f:\winservices\mvcapp21"
6、使用sc.exe工具创建服务 此处使用系统原始dos命令
发布根目录下:sc create mvcapp21 binpath= "f:\winservices\mvcapp21\mvcapp21.exe"
确保 binpath= 参数与其值之间存在空格
启动服务 sc start myservice
查看服务状态 sc query myservice
停止服务 sc stop myservice
删除服务 sc delete myservice
7、可能遇到的问题
- 使用 powershell创建服务会报错,参见其他博友文章。在windows服务中托管 asp.net core的坑
8、.net core 部署服务其他方案
9、回顾.net 部署服务
上一篇: 别再面向 for 循环编程了,Spring 自带的观察者模式就很香!
下一篇: API集成模式与实践
推荐阅读
-
vista和win7在windows服务中交互桌面权限问题解决方法:穿透Session 0 隔离
-
详解ASP.NET Core应用中如何记录和查看日志
-
asp.net core中灵活的配置方式详解
-
在Windows系统中构建还原ASP.NET Core 源码
-
在ASP.NET Core中使用托管启动(hosting startup)程序集,实现批量注册service
-
如何在ASP.NET Core 中快速构建PDF文档
-
asp.net core 3.1 入口:Program.cs中的Main函数
-
详解ASP.NET Core 网站发布到Linux服务器
-
(14)ASP.NET Core 中的日志记录
-
ASP.NET Core身份认证服务框架IdentityServer4 介绍