2016-12-07 167 views
12

有没有办法开发一个Windows服务(能够启动等启动等)与.NET核心?Windows服务与.NET核心

我找到的所有教程和说明都利用了System.ServiceProcess.ServiceBase在Visual Studio 2015中找不到和添加的原因?

我也尽量避免使用像SrvStart这样的第三方工具/库。像Topshelf这样的东西可以接受,但似乎不可用于.NET核心。

如果该服务可以在windows和linux下运行,那将会很棒。

任何想法,我可以做到这一点?

+0

谢谢您提供的信息。虽然我的目标不是托管的Web服务,而是一个后台工作。 – monty

+0

我已经创建了一个应该简化这个过程的库。你可以在这里找到https://github.com/PeterKottas/DotNetCore.WindowsService。希望你会发现它有用。 –

+1

您可以使用两种不同的东西。 https://github.com/dasMulli/dotnet-win32-service https://github.com/aspnet/Hosting/tree/dev/src/Microsoft.AspNetCore.Hosting.WindowsServices – TerribleDev

回答

2

我总结的一些选项:

  1. 移动你的代码到.NET标准库,并在.NET框架应用主机,所以你可以使用ServiceBase。当然,这需要在.NET Framework要在目标机器
  2. 使用NSSM(非吸服务管理器)上安装了管理.NET核心控制台应用程序(它有一个公共领域的许可证)
  3. 使用Windows API调用挂钩到Windows服务方法。这是DotNetCore.WindowsServicedotnet-win32-service(都是MIT许可的)采用的方法