Megosztás a következőn keresztül:


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 WcfCalculatorServiceegy 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Lásd még