Udostępnij za pośrednictwem


Host usług systemu Windows

Przykład WindowsService przedstawia usługę Windows Communication Foundation (WCF) hostowaną w zarządzanej usłudze systemu Windows. Usługi systemu Windows są kontrolowane przy użyciu apletu Usługi w Panel sterowania i można je skonfigurować do automatycznego uruchamiania po ponownym uruchomieniu systemu. Przykład składa się z programu klienckiego i programu usługi systemu Windows. Usługa jest implementowana jako program .exe i zawiera własny kod hostingu. W innych środowiskach hostingu, takich jak Windows Process Activation Services (WAS) lub Internet Information Services (IIS), nie jest konieczne pisanie kodu hostingu.

Uwaga

Procedura konfiguracji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.

Po utworzeniu tej usługi należy ją zainstalować za pomocą narzędzia Installutil.exe jak każda inna usługa systemu Windows. Jeśli zamierzasz wprowadzić zmiany w usłudze, musisz najpierw odinstalować ją za pomocą polecenia installutil /u. Pliki Setup.bat i Cleanup.bat zawarte w tym przykładzie to polecenia służące do instalowania i uruchamiania usługi systemu Windows oraz zamykania i odinstalowywania usługi systemu Windows. Usługa WCF może reagować tylko na klientów, jeśli usługa systemu Windows jest uruchomiona. Jeśli zatrzymasz usługę systemu Windows przy użyciu apletu Usługi z Panel sterowania i uruchomisz klienta, EndpointNotFoundException wystąpi wyjątek, gdy klient próbuje uzyskać dostęp do usługi. Jeśli uruchomisz ponownie usługę systemu Windows i ponownie uruchomisz klienta, komunikacja powiedzie się.

Kod usługi zawiera klasę instalatora, klasę implementacji usługi WCF, która implementuje kontrakt ICalculator i klasę usługi systemu Windows, która działa jako host czasu wykonywania. Klasa instalatora, która dziedziczy z Installerklasy , umożliwia zainstalowanie programu jako usługi NT przez narzędzie Installutil.exe. Klasa implementacji usługi, WcfCalculatorService, jest usługą WCF, która implementuje podstawowy kontrakt usługi. Ta usługa WCF jest hostowana w klasie usługi systemu Windows o nazwie WindowsCalculatorService. Aby zakwalifikować się jako usługa systemu Windows, klasa dziedziczy i ServiceBase implementuje OnStart(String[]) metody i OnStop() . W OnStart(String[])pliku obiekt ServiceHost jest tworzony dla WcfCalculatorService typu i otwarty. W OnStop()systemie host ServiceHost jest zamykany przez wywołanie Close(TimeSpan) metody ServiceHost obiektu. Adres podstawowy hosta jest skonfigurowany przy użyciu <elementu add>, który jest elementem podrzędnym< baseAddresses>, który jest elementem podrzędnym< elementu hosta>, który jest elementem podrzędnym <elementu usługi>.

Zdefiniowany punkt końcowy używa adresu podstawowego <i elementu wsHttpBinding>. Poniższy przykład przedstawia konfigurację adresu podstawowego oraz punkt końcowy, który uwidacznia aplikację 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>

Po uruchomieniu przykładu żądania operacji i odpowiedzi są wyświetlane w oknach konsoli usługi i klienta. Naciśnij klawisz ENTER w każdym oknie konsoli, aby zamknąć usługę i klienta.

Aby skonfigurować, skompilować i uruchomić przykład

  1. Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.

  2. Aby skompilować wersję rozwiązania w języku C# lub Visual Basic .NET, postępuj zgodnie z instrukcjami w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).

  3. Po utworzeniu rozwiązania uruchom Setup.bat z poziomu wiersza polecenia programu Visual Studio z podwyższonym poziomem uprawnień, aby zainstalować usługę systemu Windows przy użyciu narzędzia Installutil.exe. Usługa powinna być wyświetlana w obszarze Usługi.

  4. Aby uruchomić przykład w konfiguracji pojedynczej lub między komputerami, postępuj zgodnie z instrukcjami w temacie Uruchamianie przykładów programu Windows Communication Foundation.

Zobacz też