Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Windows-services (voorheen Bekend als Windows NT-services) bieden een procesmodel dat bijzonder geschikt is voor toepassingen die in een langlopend uitvoerbaar bestand moeten leven en geen enkele vorm van gebruikersinterface weergeven. De proceslevensduur van een Windows-servicetoepassing wordt beheerd door de Service Control Manager (SCM), waarmee u Windows-servicetoepassingen kunt starten, stoppen en onderbreken. U kunt een Windows-serviceproces zo configureren dat deze automatisch wordt gestart wanneer de computer wordt gestart, waardoor deze een geschikte hostingomgeving is voor 'alwayson'-toepassingen. Zie Windows-servicetoepassingen voor meer informatie over Windows-servicetoepassingen.
Toepassingen die langlopende WCF-services (Windows Communication Foundation) hosten, delen veel kenmerken met Windows-services. WcF-services zijn met name langlopende uitvoerbare serverbestanden die niet rechtstreeks met de gebruiker communiceren en dus geen enkele vorm van gebruikersinterface implementeren. Als zodanig is het hosten van WCF-services binnen een Windows-servicetoepassing één optie voor het bouwen van robuuste, langlopende WCF-toepassingen.
WCF-ontwikkelaars moeten vaak beslissen of ze hun WCF-toepassing willen hosten in een Windows-servicetoepassing of in de IIS-hostingomgeving (Internet Information Services) of Windows Process Activation Service (WAS). Overweeg het gebruik van Windows-servicetoepassingen onder de volgende voorwaarden:
Uw toepassing vereist expliciete activering. U moet bijvoorbeeld Windows-services gebruiken wanneer uw toepassing automatisch moet worden gestart wanneer de server wordt gestart in plaats van dynamisch te worden gestart als reactie op het eerste binnenkomende bericht.
Het proces dat als host fungeert voor uw toepassing, moet actief blijven zodra deze is gestart. Zodra het is gestart, blijft een Windows-serviceproces actief, tenzij het expliciet wordt afgesloten door een serverbeheerder met behulp van servicebeheerbeheer. Toepassingen die worden gehost in IIS of WAS, kunnen dynamisch worden gestart en gestopt om optimaal gebruik te maken van systeembronnen. Toepassingen waarvoor expliciete controle nodig is over de levensduur van hun hostingproces, moeten Windows-services gebruiken in plaats van IIS of WAS.
Uw WCF-service moet worden uitgevoerd op Windows Server 2003 en gebruik andere transporten dan HTTP. Op Windows Server 2003 is de IIS 6.0-hostingomgeving alleen beperkt tot HTTP-communicatie. Windows-servicetoepassingen zijn niet onderworpen aan deze beperking en kunnen elk transport WCF-ondersteuning gebruiken, waaronder net.tcp, net.pipe en net.msmq.
Handleiding
Maak een Windows-servicetoepassing. U kunt Windows-servicetoepassingen schrijven in beheerde code met behulp van de klassen in de System.ServiceProcess naamruimte. Deze toepassing moet één klasse bevatten die overneemt van ServiceBase.
Koppel de levensduur van de WCF-services aan de levensduur van de Windows-servicetoepassing. Normaal gesproken wilt u dat WCF-services die worden gehost in een Windows-servicetoepassing actief worden wanneer de hostingservice wordt gestart, stopt met luisteren naar berichten wanneer de hostingservice wordt gestopt en het hostingproces afsluit wanneer de WCF-service een fout krijgt. Dit kan als volgt worden bereikt:
Overschrijf OnStart(String[]) om één of meerdere instanties van ServiceHost te openen. Eén Windows-servicetoepassing kan meerdere WCF-services hosten die als groep starten en stoppen.
Overschrijven OnStop om Closed voor alle lopende WCF-services aan te roepen die tijdens ServiceHost zijn gestart OnStart(String[]).
Abonneer u op de Faulted gebeurtenis van ServiceHost en gebruik de ServiceController klasse om de Windows-servicetoepassing af te sluiten in geval van een fout.
Windows-servicetoepassingen die WCF-services hosten, worden op dezelfde manier geïmplementeerd en beheerd als Windows-servicetoepassingen die geen gebruik maken van WCF.