Windows-szolgáltatás gazdagépe
A WindowsService-minta egy felügyelt Windows-szolgáltatásban üzemeltetett Windows Communication Foundation (WCF) szolgáltatást mutat be. A Windows-szolgáltatások vezérlése az Vezérlőpult szolgáltatások kisalkalmazásával történik, és konfigurálható úgy, hogy a rendszer újraindítása után automatikusan elinduljon. A minta egy ügyfélprogramból és egy Windows Service-programból áll. A szolgáltatás .exe programként van implementálva, és saját üzemeltetési kódot tartalmaz. Más üzemeltetési környezetekben, például a Windows Folyamataktiválási szolgáltatásokban (WAS) vagy az Internet Information Servicesben (IIS) nem szükséges üzemeltetési kódot írnia.
Feljegyzés
A minta beállítási eljárása és összeállítási utasításai a témakör végén találhatók.
A szolgáltatás létrehozása után a Installutil.exe segédprogrammal kell telepíteni, mint bármely más Windows-szolgáltatást. Ha módosítani szeretné a szolgáltatást, először el kell távolítania a szolgáltatásból installutil /u
. A példában szereplő Setup.bat és Cleanup.bat fájlok a Windows szolgáltatás telepítéséhez és elindításához, valamint a Windows szolgáltatás leállításához és eltávolításához szükséges parancsok. A WCF szolgáltatás csak akkor tud válaszolni az ügyfelekre, ha a Windows szolgáltatás fut. Ha leállítja a Windows szolgáltatást a Szolgáltatások kisalkalmazás használatával Vezérlőpult és futtatja az ügyfelet, kivétel történik, EndpointNotFoundException amikor egy ügyfél megpróbál hozzáférni a szolgáltatáshoz. Ha újraindítja a Windows szolgáltatást, és újrafuttatja az ügyfelet, a kommunikáció sikeres lesz.
A szolgáltatáskód tartalmazza a telepítőosztályt, az ICalculator-szerződést implementáló WCF-szolgáltatás implementálási osztályát, valamint egy windowsos szolgáltatásosztályt, amely futásidejű gazdagépként működik. Az öröklő Installertelepítőosztály lehetővé teszi, hogy a program NT-szolgáltatásként legyen telepítve a Installutil.exe eszköz által. A szolgáltatás-implementációs osztály WcfCalculatorService
egy WCF-szolgáltatás, amely alapszintű szolgáltatási szerződést valósít meg. Ez a WCF-szolgáltatás egy Windows-szolgáltatásosztályon belül van üzemeltetve WindowsCalculatorService
. A Windows-szolgáltatásnak való minősítéshez az osztály örökli ServiceBase és implementálja azokat és OnStop() a OnStart(String[]) metódusokat. Ebben a fájlban OnStart(String[])létrejön egy ServiceHost objektum a WcfCalculatorService
típushoz, és megnyílik. Ebben OnStop()az esetben a ServiceHost az objektum metódusának ServiceHost meghívásával Close(TimeSpan) lesz bezárva. A gazdagép alapcíme a <hozzáadási> elem használatával van konfigurálva, amely a baseAddresses> gyermekeleme<, amely a< gazdagépelem> gyermeke, amely a< szolgáltatáselem> gyermeke.
A definiált végpont az alapcímet és a <wsHttpBindinget> használja. Az alábbi minta az alapcím konfigurációját, valamint a CalculatorService-t elérhetővé tevő végpontot mutatja be.
<services>
<service name="Microsoft.ServiceModel.Samples.WcfCalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
<!-- This endpoint is exposed at the base address provided by host: http://localhost:8000/ServiceModelSamples/service. -->
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
...
</service>
</services>
A minta futtatásakor a műveleti kérelmek és a válaszok megjelennek a szolgáltatás és az ügyfélkonzol ablakaiban is. A szolgáltatás és az ügyfél leállításához nyomja le az ENTER billentyűt az egyes konzolablakokban.
A minta beállítása, összeállítása és futtatása
Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták egyszeri beállítási eljárását.
A megoldás C# vagy Visual Basic .NET kiadásának létrehozásához kövesse a Windows Communication Foundation-minták készítéséhez szükséges utasításokat.
A megoldás létrehozása után futtassa Setup.bat egy emelt szintű Visual Studio-parancssorból a Windows-szolgáltatás telepítéséhez a Installutil.exe eszközzel. A szolgáltatásnak meg kell jelennie a Szolgáltatásokban.
Ha a mintát egy- vagy számítógépközi konfigurációban szeretné futtatni, kövesse a Windows Communication Foundation-minták futtatásával kapcsolatos utasításokat.