Узел службы WCF (WcfSvcHost.exe)

Узел службы Windows Communication Foundation (WCF) (WcfSvcHost.exe) позволяет запустить отладчик Visual Studio (F5) для автоматического размещения и тестирования реализованной службы. Затем можно протестировать службу с помощью тестового клиента WCF (WcfTestClient.exe) или собственного клиента, чтобы найти и устранить возможные ошибки.

Узел службы WCF

Узел службы WCF выполняет перечисление служб в проекте службы WCF, загружает конфигурацию проекта и создает экземпляр узла для каждой найденной службы. Средство интегрировано в Visual Studio с помощью шаблона службы WCF и вызывается при запуске отладки проекта.

С помощью узла службы WCF можно разместить службу WCF (в проекте библиотеки служб WCF) без написания дополнительного кода или фиксации определенного узла во время разработки.

Примечание.

Узел службы WCF не поддерживает частичное доверие. Если вы хотите использовать службу WCF в частичном доверии, не используйте шаблон проекта библиотеки служб WCF в Visual Studio для создания службы. Вместо этого создайте новый веб-сайт в Visual Studio, выбрав шаблон webSite службы WCF, который может разместить службу в веб-сервере, на котором поддерживается частичное доверие WCF.

Типы проектов, размещенные узлом службы WCF

Узел службы WCF может размещать следующие типы проектов библиотеки служб WCF: библиотека служб WCF, последовательная библиотека службы рабочих процессов, библиотека служб рабочих процессов государственного компьютера и библиотека службы Синдикации. Узел службы WCF также может размещать эти службы, которые можно добавить в проект библиотеки служб с помощью функции добавления элемента . К ним относятся служба WCF, служба государственного компьютера WF, последовательная служба WF, служба состояния XAML WF и последовательная служба XAML WF.

Однако следует отметить, что это средство не окажет содействия в настройке узла. Для этой задачи необходимо вручную отредактировать файл App.config. Это средство также не выполняет проверку подлинности пользовательских файлов конфигурации.

Внимание

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

Сценарии для использования узла службы WCF в Visual Studio

В следующей таблице перечислены все параметры в диалоговом окне аргументов командной строки, которые можно найти, щелкнув правой кнопкой мыши проект в решениях Обозреватель в Visual Studio, выбрав "Свойства", а затем выберите вкладку "Отладка" и нажмите кнопку "Пуск проекта". Эти параметры полезны при настройке узла службы WCF.

Параметр Значение
/client Необязательный параметр, задающий путь к исполняемому файлу для запуска после размещения служб. При этом запускается тестовый клиент WCF после размещения.
/clientArg Задайте строку в качестве аргумента, передаваемого настраиваемому клиентскому приложению.
/? Отображает текст справки.

Использование тестового клиента WCF

После создания проекта службы WCF и нажатия клавиши F5 для запуска отладчика узел службы WCF начинает размещение всех служб, которые он находит в проекте. Клиент тестирования WCF автоматически открывается и отображает список конечных точек службы, определенных в файле конфигурации. В главном окне можно проверить параметры и вызвать службу.

Чтобы убедиться, что используется тестовый клиент WCF, щелкните правой кнопкой мыши проект в решениях Обозреватель в Visual Studio, выберите вкладку "Свойства", а затем перейдите на вкладку "Отладка". Нажмите кнопку "Пуск проекта" и убедитесь, что в диалоговом окне аргументов командной строки отображается следующее.

/client:WcfTestClient.exe

Использование настраиваемого клиента

Чтобы использовать пользовательский клиент, щелкните правой кнопкой мыши проект в решениях Обозреватель в Visual Studio, выберите вкладку "Свойства", а затем откройте вкладку "Отладка". Нажмите кнопку "Запустить проект" и измените /client параметр в диалоговом окне аргументов командной строки, чтобы указать на пользовательский клиент, как показано в следующем примере.

/client:"path/CustomClient.exe"

При нажатии клавиши F5, чтобы снова запустить службу, узел службы WCF автоматически запускает настраиваемый клиент при запуске отладчика.

Также можно использовать параметр /clientArg:, чтобы указать строку в качестве аргумента, переданного настраиваемому клиентскому приложению, как указано в следующем примере:

/client:"path/CustomClient.exe" /clientArg:"arguments that are passed to Client"

Например, если используется шаблон библиотеки служб синдикации, то можно использовать следующие аргументы командной строки:

/client:iexplore.exe /clientArgs:http://localhost:8731/Design_Time_Addresses/Feed1/

Указание отсутствия клиента

Чтобы указать, что клиент не будет использоваться после размещения службы WCF, щелкните правой кнопкой мыши проект в решениях Обозреватель в Visual Studio, выберите "Свойства", а затем выберите вкладку "Отладка". Нажмите кнопку "Пуск проекта" и оставьте диалоговое окно "Аргументы командной строки" пустым.

Использование настраиваемого узла

Чтобы использовать пользовательский узел, щелкните правой кнопкой мыши проект в решениях Обозреватель в Visual Studio, выберите "Свойства", а затем перейдите на вкладку "Отладка". Нажмите кнопку "Запустить внешнюю программу" и введите полный путь к пользовательскому узлу. Диалоговое окно "Аргументы командной строки" можно использовать для указания аргументов , передаваемых в узел.

Пользовательский интерфейс узла службы WCF

При первоначальном вызове узла службы WCF (нажав клавишу F5 внутри Visual Studio), окно узла службы WCF автоматически открывается. При запуске узла службы WCF значок программы отображается в области уведомлений. Дважды щелкните значок, чтобы открыть окно узла службы WCF

При возникновении ошибок во время размещения службы откроется диалоговое окно "Узел службы WCF" для отображения соответствующих сведений.

Главное окно узла службы WCF содержит два меню:

  • Файл: содержит команды "Закрыть " и "Выйти ". При нажатии кнопки "Закрыть" диалоговое окно узла службы WCF закрывается, но службы продолжают размещаться. При нажатии кнопки "Выход" узел службы WCF также завершает работу. Также завершается работа всех размещенных служб.

  • Справка. Содержит команду About , содержащую сведения о версии. Она также содержит команду справки, которая может открыть файл справки.

Основное окно узла службы WCF содержит две области:

  • Первая область — служба. В ней содержится список, отображающий основные сведения всех служб. К ним относятся следующие сведения:

    • Служба: выводит список всех служб.

    • Состояние: выводит список состояния службы. Допустимые значения: "Started", "Остановлено" и "Error".

    • Адрес метаданных: отображает адрес метаданных служб.

  • Второй областью является дополнительная информация. В нем отображается подробное описание состояния службы при выборе определенной строки службы в области обслуживания . Если состояние - «Ошибка», можно просмотреть полное сообщение об ошибке на экране.

Остановка узла службы WCF

Узел службы WCF можно завершить следующими способами:

  • Остановите сеанс отладки в Visual Studio.

  • Выберите "Выйти из меню "Файл" в окне узла службы WCF.

  • Выберите "Выйти из контекстного меню" значка области уведомлений узла службы WCF в области системного уведомления.

  • Закройте тестовый клиент WCF, если он используется.

Использование узла службы без прав администратора

Чтобы пользователи без прав администратора могли разрабатывать службы WCF, для пространстваhttp://+:8731/Design_Time_Addresses" имен создается ACL (контроль доступа list); во время установки Visual Studio. Список управления доступом определяется пользовательским интерфейсом, который включает всех пользователей, выполнивших вход в систему. Администратор istrators могут добавлять или удалять пользователей из этого списка ACL или открывать дополнительные порты. Этот ACL позволяет пользователям использовать автоматический узел службы WCF (wcfSvcHost.exe) без предоставления им прав администратора.

Доступ можно изменить с помощью средства netsh.exe в Windows Vista в учетной записи администратора с повышенными привилегиями. Ниже приведен пример использования средства netsh.exe.

netsh http add urlacl url=http://+:8001/MyService user=<domain>\<user>

Дополнительные сведения о netsh.exe см. в разделе "Использование средства Netsh.exe и коммутаторов командной строки".

См. также