Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В примере WindowsService показана служба Windows Communication Foundation (WCF), размещенная в управляемой службе Windows. Службы Windows управляются с помощью applet Services в панели управления и могут быть настроены для автоматического запуска после перезагрузки системы. Пример состоит из клиентской программы и программы службы Windows. Служба реализуется как программа .exe и содержит собственный хостинг-код. В других средах размещения, таких как службы активации процессов Windows (WAS) или Интернет-информационные службы (IIS), нет необходимости самостоятельно писать код для размещения.
Замечание
Инструкции по настройке и сборке этого примера находятся в конце этого раздела.
После создания этой службы она должна быть установлена с помощью программы Installutil.exe, как и любая другая служба Windows. Если вы собираетесь внести изменения в службу, необходимо сначала удалить ее с помощью installutil /u
. Файлы Setup.bat и Cleanup.bat, включенные в этот пример, являются командами для установки и запуска службы Windows, а также для завершения работы и удаления службы Windows. Служба WCF может реагировать только на клиентов, если служба Windows запущена. Если вы остановите службу Windows с помощью applet Services из панели управления и запустите клиент, EndpointNotFoundException исключение возникает при попытке клиента получить доступ к службе. При перезапуске службы Windows и повторном запуске клиента обмен данными завершается успешно.
Код службы включает класс установщика, класс реализации службы WCF, реализующий контракт ICalculator, и класс службы Windows, который выступает в качестве узла среды выполнения. Класс установки, который наследует от Installer, позволяет установить программу как службу NT с помощью инструмента Installutil.exe. Класс WcfCalculatorService
реализации службы — это служба WCF, реализующая базовый контракт службы. Эта служба WCF размещается внутри класса WindowsCalculatorService
службы Windows. Чтобы квалифицироваться как служба Windows, класс наследует от ServiceBase и реализует методы OnStart(String[]) и OnStop(). Внутри OnStart(String[]) создается объект ServiceHost для типа WcfCalculatorService
, и он открывается. В OnStop() объект ServiceHost закрывается вызовом метода Close(TimeSpan) объекта ServiceHost. Базовый адрес узла настраивается с помощью элемента <add>, который является дочерним элементом <baseAddresses>, а он, в свою очередь, является дочерним элементом <узла>, находящегося внутри <элемента службы>.
Определяемая конечная точка использует базовый адрес и <wsHttpBinding>. В следующем примере показана конфигурация базового адреса, а также конечная точка, которая предоставляет службу Калькулятора.
<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>
При запуске примера запросы и ответы операции отображаются как в окнах службы, так и в консоли клиента. Нажмите клавишу ВВОД в каждом окне консоли, чтобы завершить работу службы и клиента.
Настройка, сборка и запуск примера
Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.
Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .
После создания решения запустите Setup.bat из командной строки Visual Studio с повышенными привилегиями, чтобы установить службу Windows с помощью средства Installutil.exe. Служба должна появиться в Службах.
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в разделе "Примеры Windows Communication Foundation".