windows 服务中托管asp.net core
程序员文章站
2022-03-10 15:41:19
在windows 服务中托管asp.net core SDK 2.1.300 "官方示例" 1、添加运行标识符 2、添加包引用 dotnet add package Microsoft.AspNetCore.Hosting.WindowsServices v 2.1.0 s https://www. ......
在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 部署服务
推荐阅读
-
Asp.Net Core 2.1 中 利用SignalR 服务端主动推送数据
-
Asp.Net Core使用SignalR进行服务间调用
-
ASP.net core 2.0.0 中 asp.net identity 2.0.0 的基本使用(二)—启用用户管理
-
Asp.Net Core 轻松学-基于微服务的后台任务调度管理器
-
ASP.Net Core MVC基础系列之服务注册和管道
-
Hangfire在ASP.NET CORE中的简单实现方法
-
asp.net基于windows服务实现定时发送邮件的方法
-
解决ASP.NET中"/"应用程序中的服务器错误的方法
-
在Windows系统中构建还原ASP.NET Core 源码
-
asp.net基于windows服务实现定时发送邮件的方法