2013-06-19 11 views
6

Mam utworzyć aplikację konsoli ServiceStack, która działa świetnie, ale oczywiście muszę ją pozostawić uruchomioną po uruchomieniu jej z wiersza polecenia. Chcę uruchomić to jako usługę systemu Windows.Jak uruchomić projekt konsoli ServiceStack jako usługę systemu Windows?

Przeglądam tę stronę wiki, która mówi, że możesz uruchomić SS jako usługę Windows.

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

Nie było całkowicie jasne, w jaki sposób to zrobić. Do tego StarterTemplate odwołuje się od 2 lat temu. Czy sklonować ten projekt, a następnie skopiować do niego mój kod?

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

Odpowiedz

3

Najprostszym sposobem jest stworzenie Empty ServiceStack usługa Windows projekt w ServiceStackVS VS.NET Extension.

W przeciwnym razie można sklonować projekt WinService i utworzyć nowy projekt usługi systemu Windows z programu Visual Studio i skopiować podejście w wersji Program.cs.

Nowszym projektem ServiceStack Windows Service jest strona Razor Rockstars działająca pod numerem Windows Service Host, której szablon został oparty na szablonie ServiceStack.Examples Starter.

+0

Witam, nie rozumiem kodu w [Program.cs] (https://github.com/ServiceStack/ServiceStack.Examples/blob/master/src/StarterTemplates/WinServiceAppHost/Program.cs). Jeśli jest to usługa Windows, co to znaczy 'http: // localhost: port'? To nie jest usługa internetowa. –

+0

@Love Ciągle działa samoobsługowa usługa sieciowa, działa tylko wewnątrz usługi Windows. – mythz

+0

Więc szablon jest "Usługa ServiceStack Windows Service Empty", kiedy można utworzyć projekt? –

2

Używam górnej półki, aby uruchomić aplikację konsoli servicestack jako usługę Windows. Działa to bardzo dobrze dla mnie. https://github.com/Topshelf/Topshelf

+0

ciekawe, użyłem TopShelf do innych rzeczy. Więc punkty końcowe wyglądają dobrze podczas pracy w usłudze Windows? – Shane

+0

Nie miałem żadnych problemów. Mój skrypt wdrażania zawiera modyfikacje pliku acl, aby umożliwić użytkownikowi, że usługa działa, jak używać portu 80: netsh http add urlacl url = http: // *: 80/user = XXX \ XXXXXX – MikeT

+0

@MikeT Jakieś przykłady tego? – TCopple

Powiązane problemy