Aracılığıyla paylaş


Windows Hizmet Konağı

WindowsService örneği, yönetilen bir Windows Hizmetinde barındırılan bir Windows Communication Foundation (WCF) hizmetini gösterir. Windows Hizmetleri, Denetim Masası'daki Hizmetler uygulaması kullanılarak denetlenebilir ve sistem yeniden başlatıldıktan sonra otomatik olarak başlatılacak şekilde yapılandırılabilir. Örnek, bir istemci programından ve bir Windows Hizmeti programından oluşur. Hizmet bir .exe programı olarak uygulanır ve kendi barındırma kodunu içerir. Windows İşlem Etkinleştirme Hizmetleri (WAS) veya Internet Information Services (IIS) gibi diğer barındırma ortamlarında barındırma kodu yazmanız gerekmez.

Not

Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda bulunur.

Bu hizmeti derledikten sonra, diğer Tüm Windows Hizmetleri gibi Installutil.exe yardımcı programıyla yüklenmelidir. Hizmette değişiklik yapacaksanız, önce ile installutil /ukaldırmanız gerekir. Bu örnekte yer alan Setup.bat ve Cleanup.bat dosyaları, Windows Hizmeti'ni yükleyip başlatmaya ve Windows Hizmeti'ni kapatıp kaldırmaya ilişkin komutlardır. WCF hizmeti yalnızca Windows Hizmeti çalışıyorsa istemcilere yanıt verebilir. Denetim Masası Services uygulamasını kullanarak Windows Hizmeti'ni durdurur ve istemciyi çalıştırırsanız, istemci hizmete erişmeye çalıştığında bir EndpointNotFoundException özel durum oluşur. Windows Hizmeti'ni yeniden başlatır ve istemciyi yeniden çalıştırırsanız, iletişim başarılı olur.

Hizmet kodu bir yükleyici sınıfı, ICalculator sözleşmesini uygulayan bir WCF hizmet uygulama sınıfı ve çalışma zamanı konağı işlevi gören bir Windows Hizmeti sınıfı içerir. 'den Installerdevralan yükleyici sınıfı, programın Installutil.exe aracı tarafından nt hizmeti olarak yüklenmesine izin verir. Hizmet uygulama sınıfı, WcfCalculatorServicetemel bir hizmet sözleşmesi uygulayan bir WCF hizmetidir. Bu WCF hizmeti adlı WindowsCalculatorServicebir Windows Hizmeti sınıfında barındırılır. Windows Hizmeti olarak nitelendirmek için sınıfı ve ServiceBase yöntemlerini devralır ve uygular OnStart(String[])OnStop() . içinde OnStart(String[])türü için WcfCalculatorService bir ServiceHost nesne oluşturulur ve açılır. içinde OnStop(), ServiceHost nesnesinin Close(TimeSpan) yöntemi ServiceHost çağrılarak kapatılır. Konağın temel adresi, hizmet> öğesinin< alt öğesi olan konak> öğesinin <alt <öğesi olan baseAddresses> öğesinin <alt öğesi olan add> öğesi kullanılarak yapılandırılır.

Tanımlanan uç nokta temel adresi ve wsHttpBinding'i <>kullanır. Aşağıdaki örnekte temel adresin yapılandırmasının yanı sıra CalculatorService'i kullanıma sunan uç nokta gösterilmektedir.

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

Örneği çalıştırdığınızda, işlem istekleri ve yanıtları hem hizmet hem de istemci konsol pencerelerinde görüntülenir. Hizmeti ve istemciyi kapatmak için her konsol penceresinde ENTER tuşuna basın.

Örneği ayarlamak, derlemek ve çalıştırmak için

  1. Windows Communication Foundation Örnekleri için Tek Seferlik Kurulum Yordamı'nı gerçekleştirdiğinizden emin olun.

  2. Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örnekleri Oluşturma başlığındaki yönergeleri izleyin.

  3. Çözüm oluşturulduktan sonra, Installutil.exe aracını kullanarak Windows hizmetini yüklemek için yükseltilmiş bir Visual Studio komut isteminden Setup.bat çalıştırın. Hizmet, Hizmetler'de görünmelidir.

  4. Örneği tek veya bilgisayarlar arası bir yapılandırmada çalıştırmak için Windows Communication Foundation Örneklerini Çalıştırma başlığındaki yönergeleri izleyin.

Ayrıca bkz.