windows 服务中托管asp.net core

在windows 服务中托管asp.net core

SDK 2.1.300

官方示例

1、添加运行标识符
xml netcoreapp2.1 win7-x64
2、添加包引用 dotnet add package Microsoft.AspNetCore.Hosting.WindowsServices -v 2.1.0 -s https://www.nuget.org/api/v3

dotnet命令

包源

3、确认导入是否成功
xml
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();
    }

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 部署服务其他方案

使用NSSM把.Net Core部署至Windows 服务

9、回顾.net 部署服务

使用Topshelf创建Windows 服务

wcf服务

你可能感兴趣的:(windows 服务中托管asp.net core)