如何将ServiceStack控制台项目作为Windows服务运行?

7
我已创建了一个ServiceStack控制台应用程序,它运行良好,但当然,在从命令提示符触发后,我必须让它保持运行状态。我想将其作为Windows服务运行。 我正在查看这个维基页面,该页面说明您可以将SS作为Windows服务运行。

https://github.com/ServiceStack/ServiceStack/wiki/Self-hosting

我不是完全清楚如何去做这个。这个StarterTemplate是2年前的参考。我需要先克隆这个项目然后再把我的代码复制进去吗?

https://github.com/ServiceStack/ServiceStack.Examples/tree/master/src/StarterTemplates/WinServiceAppHost

2个回答

3
最简单的方法是在ServiceStackVS VS.NET Extension中创建一个ServiceStack Windows Service Empty项目。

否则,您可以克隆WinService项目,并从Visual Studio创建一个新的Windows Service项目,并复制Program.cs中的方法。

一个更近期的ServiceStack Windows Service项目是Razor Rockstars网站,它运行在Windows Service Host中,该模板基于ServiceStack.Examples Starter模板。


嗨,我不理解Program.cs中的代码。如果这是一个Windows服务,那么http://localhost:port是什么意思?这不是一个Web服务。 - user1108948
@Love 它仍在运行自托管的 Web 服务,只是运行在 Windows 服务内部。 - mythz
那么,当可以创建项目时,模板是ServiceStack Windows Service Empty - user1108948

3

有趣,我已经在其他项目中使用了TopShelf。那么在Windows服务中运行时,端点是否正常显示? - Shane
我没有遇到任何问题。我的部署脚本包括对acl的修改,以使服务运行的用户能够使用端口80:netsh http add urlacl url=http://*:80/ user=XXX\XXXXXX - MikeT
@MikeT 有关于这个的任何例子吗? - TCopple

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接