Поделиться через


Узел службы Windows

В этом образце показана служба Windows Communication Foundation (WCF), размещенная в управляемой службе Windows. Службы Windows управляются с помощью компонента "Службы" в Панели управления, и их можно настраивать таким образом, чтобы они автоматически запускались после перезагрузки системы. Этот образец состоит из клиентской программы и программы службы Windows. Служба реализуется как программа EXE и содержит свой собственный код размещения. В других средах размещения, таких как служба активации Windows (WAS) или IIS, писать код размещения необязательно.

ms751414.note(ru-ru,VS.100).gifПримечание
Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела.

ms751414.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WCF\Basic\Services\Hosting\WindowsService

После построения этой службы ее необходимо установить с помощью служебной программы Installutil.exe, как и все остальные службы Windows. Если предполагается вносить изменения в службу, необходимо сначала удалить ее с помощью команды installutil /u. Входящие в состав этого образца файлы Setup.bat и Cleanup.bat содержат команды для установки и запуска службы Windows, а также для отключения и удаления службы Windows. Служба WCF может отвечать клиентам, только если запущена служба Windows. Если остановить службу Windows с помощью компонента "Службы" в Панели управления, а затем запустить клиент, при попытке клиента обратиться к службе возникнет исключение EndpointNotFoundException. Если перезапустить службу Windows и клиент, обращение произойдет успешно.

Код службы включает класс установщика, класс реализации службы WCF, который реализует контракт ICalculator и класс службы Windows, который выступает в роли основного приложения среды выполнения. Класс установщика, унаследованный от класса Installer, позволяет устанавливать программу как службу NT с помощью средства Installutil.exe. Класс реализации службы WcfCalculatorService является службой WCF, которая реализует базовый контракт службы. Эта служба WCF размещается в классе службы Windows с именем WindowsCalculatorService. Чтобы считаться службой Windows, этот класс наследует от класса ServiceBase и реализует методы OnStart и OnStop. В методе OnStart создается и открывается объект ServiceHost для типа WcfCalculatorService. В методе OnStop объект ServiceHost закрывается путем вызова метода Close объекта ServiceHost. Базовый адрес основного приложения настраивается с помощью элемента <add> of <baseAddress>, который является дочерним элементом для элемента <baseAddresses>, который является дочерним элементом для элемента <host>, который является дочерним элементом для элемента <service>.

Определяемая конечная точка использует базовый адрес и элемент wsHttpBinding Element. В следующем образце показана конфигурация базового адреса, а также конечной точки, предоставляющей службу CalculatorService.

<services>
  <service name="Microsoft.ServiceModel.Samples.WcfCalculatorService"
           behaviorConfiguration="CalculatorServiceBehavior">
    <host>
      <baseAddresses>
        <add baseAddress="https://localhost:8000/ServiceModelSamples/service"/>
      </baseAddresses>
    </host>
    <!-- This endpoint is exposed at the base address provided by host: https://localhost:8000/ServiceModelSamples/service.  -->
    <endpoint address=""
              binding="wsHttpBinding"
              contract="Microsoft.ServiceModel.Samples.ICalculator" />
    ...
  </service>
</services>

При выполнении образца запросы и ответы операций отображаются в окнах консоли как службы, так и клиента. Нажмите клавишу ВВОД в каждом окне консоли, чтобы закрыть службу и клиент.

Настройка, построение и выполнение образца

  1. Убедитесь, что выполнены процедуры, описанные в разделе Процедура однократной настройки образцов Windows Communication Foundation.

  2. Чтобы создать выпуск решения на языке C# или Visual Basic .NET, следуйте инструкциям в разделе Построение образцов Windows Communication Foundation.

  3. После построения решения запустите файл Setup.bat из командной строки Visual Studio 2010 с повышенными привилегиями, чтобы установить службу Windows с помощью программы Installutil.exe. Теперь служба должна отображаться в списке служб.

  4. Чтобы запустить образец на одном или нескольких компьютерах, следуйте инструкциям в разделе Running the Windows Communication Foundation Samples.

См. также

Другие ресурсы

Образцы размещения и сохраняемости AppFabric