Gewusst wie: Debuggen von Windows-Dienstanwendungen?
Ich bin erstellen einer Windows-Dienstanwendung in Visual Studio 2010 Ultimate SP1.
War ich nach 'Wie' von der MSDN-Website:
http://msdn.microsoft.com/en-us/library/7a50syb3.aspx
Den ich je erlebt habe zwei Probleme:
-
Kann ich nicht starten Sie einen Dienst über den Server-Explorer - mein service ist dort aufgelistet, aber im Kontext Menü habe ich nur zwei Optionen zur Verfügung: Aktualisieren und Eigenschaften. Es gibt keine "Start" - obwohl die MSDN-Dokumentation sagt, dass es sein sollte, die option.
Zum Glück kann ich vermeiden, diese Umstände, durch die Verwendung von Services Control Manager. -
Der nächste Schritt ist: "In Visual Studio, wählen Sie Prozesse aus dem Debug-Menü".
Diese option existiert nicht im Debug-Menü. Ich habe nur "an den Prozess Anhängen", aber Dienstleistungen sind nicht aufgeführt.
Weiß jemand, was ist falsch und wie soll ich die debug meine Anwendung?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als einen Gedanken: ich erbaut habe eine Menge von Windows-Diensten und einer von vielen Gründen, die ich nicht schaffen, den Kern-code in der service selbst. Der service ist im Grunde der "operativen Ebene", wenn man so will. Die Erstellung der core-code in eine dll ermöglicht das Debuggen und testen der jeweiligen code. Sie können erstellen Sie eine Konsole oder desktop-app, die ausgeführt wird, den Kern-code, die verwendet werden können, während Entwicklungs-und Testphasen.
Persönlich, ich habe ein service-runner-Anwendung, die erfasst Protokollierung in Verbindung mit dem start-Stopp-Funktion. Meine OnStart und OnStop-code-Blöcke sind buchstäblich identisch mit dem service.
Weiter, wenn Sie den Dienst testen, sollten Sie in der Lage sein, um den Dienst zu starten (z.B. myService.exe) und an den Prozess Anhängen. Jedoch ein weiterer Hinweis ist, dass sollten Sie pause/warten Sie, bis das service-thread (für sagen wir 30 Sekunden) mit einer debug-build, so dass Sie Zeit haben, an den Prozess Anhängen, und Sie verpassen Sie nicht Ihre code für die Initialisierung. Nur denken Sie daran, Sie müssen installieren Sie den Dienst starten über die Windows-Dienst-manager.
Hier ist etwas code, den Sie möglicherweise zeigen Sie in die Richtung, die ich benutze. In das service-Programm.cs-Datei verwende ich die unten; dann in den Dienst OnStart () - Methode rufen Sie die dll, und die laufen. Auch, Sie können deinen Dienst zu stoppen, ersetzen Sie die dll mit einer aktualisierten version dann neu starten. Mit C# können Sie ersetzen Sie die service-exe, als auch, diese sind aber nur C# - Eigenschaften: in C++ können Sie keine.