Hostitel služby Windows
Ukázka služby WindowsService ukazuje službu Wcf (Windows Communication Foundation) hostované ve spravované službě Systému Windows. Služby Windows jsou řízeny pomocí apletu Služeb v Ovládací panely a lze je nakonfigurovat tak, aby se po restartování systému automaticky spustily. Ukázka se skládá z klientského programu a programu služby systému Windows. Služba se implementuje jako .exe program a obsahuje vlastní kód hostování. V jiných hostitelských prostředích, jako jsou aktivační služby windows (WAS) nebo Internetová informační služba (IIS), není nutné psát kód hostování.
Poznámka:
Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.
Po sestavení této služby musí být nainstalována pomocí nástroje Installutil.exe stejně jako jakákoli jiná služba systému Windows. Pokud budete ve službě provádět změny, musíte ho nejprve odinstalovat .installutil /u
Soubory Setup.bat a Cleanup.bat, které jsou součástí této ukázky, jsou příkazy pro instalaci a spuštění služby systému Windows a vypnutí a odinstalace služby systému Windows. Služba WCF může reagovat pouze na klienty, pokud je služba Systému Windows spuštěná. Pokud službu Windows zastavíte pomocí apletu Služeb z Ovládací panely a spustíte klienta, dojde k výjimce, EndpointNotFoundException když se klient pokusí o přístup ke službě. Pokud restartujete službu Windows a znovu spustíte klienta, komunikace proběhne úspěšně.
Kód služby obsahuje instalační třídu, třídu implementace služby WCF, která implementuje kontrakt ICalculator a třídu služby Systému Windows, která funguje jako hostitel za běhu. Instalační třída, která dědí z Installer, umožňuje program nainstalovat jako službu NT nástrojem Installutil.exe. Třída implementace služby je WcfCalculatorService
služba WCF, která implementuje základní kontrakt služby. Tato služba WCF je hostována uvnitř třídy služby systému Windows s názvem WindowsCalculatorService
. Aby byla třída kvalifikovat jako služba systému Windows, dědí z ServiceBase a implementuje OnStart(String[]) metody a OnStop() metody. V OnStart(String[])objektu ServiceHost je vytvořen pro WcfCalculatorService
typ a otevřen. V OnStop(), ServiceHost je uzavřen voláním Close(TimeSpan) metody objektu ServiceHost . Základní adresa hostitele je nakonfigurována pomocí elementu add>, což je podřízený <prvek baseAddresses>, což je podřízený prvek hostitele>, což je podřízený <prvek <služby>.<
Definovaný koncový bod používá základní adresu a wsHttpBinding>.< Následující ukázka ukazuje konfiguraci základní adresy i koncového bodu, který zveřejňuje službu CalculatorService.
<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>
Při spuštění ukázky se požadavky na operace a odpovědi zobrazí v oknech služby i konzoly klienta. Stisknutím klávesy ENTER v každém okně konzoly vypnete službu a klienta.
Nastavení, sestavení a spuštění ukázky
Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.
Pokud chcete sestavit edici C# nebo Visual Basic .NET řešení, postupujte podle pokynů v části Sestavení ukázek windows Communication Foundation.
Po sestavení řešení spusťte Setup.bat z příkazového řádku sady Visual Studio se zvýšenými oprávněními k instalaci služby Windows pomocí nástroje Installutil.exe. Služba by se měla zobrazit ve službách.
Pokud chcete spustit ukázku v konfiguraci s jedním nebo více počítači, postupujte podle pokynů v části Spuštění ukázek windows Communication Foundation.