Windows服务与.NET核心
问题描述:
有没有办法开发一个Windows服务(能够启动等启动等)与.NET核心?Windows服务与.NET核心
我找到的所有教程和说明都利用了System.ServiceProcess.ServiceBase在Visual Studio 2015中找不到和添加的原因?
我也尽量避免使用像SrvStart这样的第三方工具/库。像Topshelf这样的东西可以接受,但似乎不可用于.NET核心。
如果该服务可以在windows和linux下运行,那将会很棒。
任何想法,我可以做到这一点?
答
我总结的一些选项:
- 移动你的代码到.NET标准库,并在.NET框架应用主机,所以你可以使用
ServiceBase
。当然,这需要在.NET Framework要在目标机器 - 使用NSSM(非吸服务管理器)上安装了管理.NET核心控制台应用程序(它有一个公共领域的许可证)
- 使用Windows API调用挂钩到Windows服务方法。这是DotNetCore.WindowsService和dotnet-win32-service(都是MIT许可的)采用的方法
谢谢您提供的信息。虽然我的目标不是托管的Web服务,而是一个后台工作。 – monty
我已经创建了一个应该简化这个过程的库。你可以在这里找到https://github.com/PeterKottas/DotNetCore.WindowsService。希望你会发现它有用。 –
您可以使用两种不同的东西。 https://github.com/dasMulli/dotnet-win32-service https://github.com/aspnet/Hosting/tree/dev/src/Microsoft.AspNetCore.Hosting.WindowsServices – TerribleDev