Hosten in einer Windows-DienstanwendungHosting in a Windows Service Application

Windows-Dienste (früher Windows NT-Dienste) bieten ein Prozessmodell, das besonders für Anwendungen geeignet ist, die sich in ausführbaren Dateien mit langer Laufzeit befinden müssen und keinerlei Benutzeroberfläche anzeigen.Windows services (formerly known as Windows NT services) provide a process model particularly suited to applications that must live in a long-running executable and do not display any form of user interface. Die Prozesslebensdauer einer Windows-Dienstanwendung wird vom Dienststeuerungs-Manager (Service Control Manager, SCM) verwaltet, mit dem Sie Windows-Dienstanwendungen starten, beenden und anhalten können.The process lifetime of a Windows service application is managed by the service control manager (SCM), which allows you to start, stop, and pause Windows service applications. Sie können ein Windows-Dienstprozess für den automatischen start beim Starten des Computers somit eine angemessene Hostingumgebung für "immer aktiviert" Anwendungen konfigurieren.You can configure a Windows service process to start automatically when the computer starts, making it a suitable hosting environment for "always on" applications. Weitere Informationen zu Windows-dienstanwendungen, finden Sie unter Windows-Dienstanwendungen.For more information about Windows service applications, see Windows Service Applications.

Anwendungen, die lang andauernde Windows Communication Foundation (WCF)-Dienste hosten haben viele gemeinsamkeiten mit Windows-Dienste.Applications that host long-running Windows Communication Foundation (WCF) services share many characteristics with Windows services. WCF-Dienste sind insbesondere Serverdateien mit langer, die interagieren nicht direkt mit dem Benutzer und daher keinerlei Benutzeroberfläche nicht implementiert.In particular, WCF services are long-running server executables that do not interact directly with the user and therefore do not implement any form of user interface. Daher ist das Hosten von WCF-Diensten innerhalb einer Windows-dienstanwendung eine Option zum Erstellen robuster und lang andauernde, WCF-Clientanwendungen.As such, hosting WCF services inside of a Windows service application is one option for building robust, long-running, WCF applications.

Häufig müssen erfahrenen Entwicklern von WCF entscheiden, ob ihre WCF-Anwendung in einer Windows-dienstanwendung oder in der hostumgebung (Internet Information Services, IIS) oder Windows Process Activation Service (WAS) hosten.Often, WCF developers must decide whether to host their WCF application inside of a Windows service application or inside of the Internet Information Services (IIS) or Windows Process Activation Service (WAS) hosting environment. Unter folgenden Bedingungen sollen Sie die Verwendung von Windows-Dienstanwendungen in Erwägung ziehen:You should consider using Windows service applications under the following conditions:

  • Die Anwendung erfordert explizite Aktivierung.Your application requires explicit activation. Beispielsweise sollten Sie Windows-Dienste verwenden, wenn die Anwendung automatisch beim Serverstart gestartet werden soll, statt dynamisch als Antwort auf die erste eingehende Nachricht.For example, you should use Windows services when your application must start automatically when the server starts instead of being dynamically started in response to the first incoming message.

  • Der Prozess, der die Anwendung hostet, muss nach dem Start weiterhin ausgeführt werden.The process that hosts your application must remain running once started. Nach dem Start wird ein Windows-Dienstprozess solange ausgeführt, bis er explizit von einem Serveradministrator über den Dienststeuerungs-Manager beendet wird.Once started, a Windows service process remains running unless explicitly shut down by a server administrator using the service control manager. In IIS oder WAS gehostete Anwendungen können dynamisch gestartet und beendet werden, um die Systemressourcen optimal zu nutzen.Applications hosted in IIS or WAS may be started and stopped dynamically to make optimal use of system resources. Anwendungen, die explizite Steuerung während der gesamten Lebensdauer ihres Hostingprozesses erfordern, sollten Windows-Dienste anstelle von IIS oder WAS verwenden.Applications that require explicit control over the lifetime of their hosting process should use Windows services instead of IIS or WAS.

  • Der WCF-Dienst muss unter Windows Server 2003 ausführen und andere Transportoptionen als HTTP verwenden.Your WCF service must run on Windows Server 2003 and use transports other than HTTP. Auf Windows Server 2003 ist die IIS 6.0IIS 6.0-Hostumgebung auf HTTP-Kommunikation beschränkt.On Windows Server 2003, the IIS 6.0IIS 6.0 hosting environment is restricted to HTTP communication only. Windows-dienstanwendungen fallen nicht unter diese Beschränkung und können Transport WCF unterstützt werden, darunter net.tcp, net.pipe und net.msmq.Windows service applications are not subject to this restriction and can use any transport WCF supports, including net.tcp, net.pipe, and net.msmq.

So hosten Sie WCF innerhalb einer Windows-DienstanwendungTo host WCF inside of a Windows service application

  1. Erstellen Sie eine Windows-Dienstanwendung.Create a Windows service application. Mit den Klassen im System.ServiceProcess-Namespace können Sie Windows-Dienstanwendungen in verwaltetem Code schreiben.You can write Windows service applications in managed code using the classes in the System.ServiceProcess namespace. Diese Anwendung muss eine Klasse einschließen, die von ServiceBase erbt.This application must include one class that inherits from ServiceBase.

  2. Verknüpfen Sie die Lebensdauer der WCF-Dienste, von der Lebensdauer der Windows-dienstanwendung.Link the lifetime of the WCF services to the lifetime of the Windows service application. In der Regel möchten Sie die WCF-Diensten in einer Windows-dienstanwendung werden aktiviert, beim Starten des Hostingdienst, Beenden der Überwachung für Nachrichten beim hosting-Dienst beendet, und der Hostprozess heruntergefahren wird, wenn der WCF-Dienst ein Fehler auftritt.Typically, you want WCF services hosted in a Windows service application to become active when the hosting service starts, stop listening for messages when the hosting service is stopped, and shut down the hosting process when the WCF service encounters an error. Dies kann folgendermaßen erfüllt werden:This can be accomplished as follows:

    Windows-dienstanwendungen, die WCF-Dienste gehostet werden bereitgestellt und auf die gleiche Weise verwaltet werden, da Windows-dienstanwendungen, die nicht vornehmen von WCF verwenden.Windows service applications that host WCF services are deployed and managed in the same way as Windows service applications that do not make use of WCF.

Siehe auchSee Also

System.ServiceProcess
Exemplarische Vorgehensweise: Erstellen einer Windows-Dienstanwendung im Komponenten-DesignerWalkthrough: Creating a Windows Service Application in the Component Designer
Vorgehensweise: Hosten eines WCF-Diensts in einem verwalteten Windows-DienstHow to: Host a WCF Service in a Managed Windows Service
Windows-DiensthostWindows Service Host
Programmierarchitektur für DienstanwendungenService Application Programming Architecture
Windows Server AppFabric-HostingfunktionenWindows Server App Fabric Hosting Features