2013-06-19 61 views
6

我已经创建了一个很好的ServiceStack控制台应用程序,但是当然,我必须在从命令提示符处触发后才能运行它。我想将其作为Windows服务运行。如何将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

回答

3

最简单的方法是在ServiceStackVS VS.NET Extension创建ServiceStack Windows服务空项目。

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

最近的ServiceStack Windows服务项目是Razor Rockstars网站,其运行于Windows Service Host,其模板基于ServiceStack.Examples Starter模板。

+0

嗨,我不明白,在[Program.cs中]代码(https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/StarterTemplates/WinServiceAppHost/Program.cs)。如果它是Windows服务,它是什么意思'http:// localhost:port'?这不是一项网络服务。 – 2015-09-17 00:18:18

+0

@Love它仍在运行自托管的Web服务,它只是在Windows服务中运行。 – mythz

+0

因此,当可以创建项目时,模板是“ServiceStack Windows Service Empty”? – 2015-09-17 00:48:51

2

我使用topshelf作为Windows服务运行一个服务堆栈控制台应用程序。它对我来说真的很好。 https://github.com/Topshelf/Topshelf

+0

有趣的是,我用TopShelf来做其他事情。所以在windows服务中运行时,终点显示得很好? – Shane

+0

我没有遇到任何问题。我的部署脚本包含对acl的修改,以使服务运行的用户能够使用端口80:netsh http add urlacl url = http:// *:80/user = XXX \ XXXXXX – MikeT

+0

@MikeT这样的任何示例? – TCopple

相关问题