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


Хост службы 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 Service Host начнет хостинг всех служб, которые он находит в вашем проекте. Клиент тестирования 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 , содержащую сведения о версии. Она также содержит команду Help, которая может открыть файл справки.

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

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы пользователи без прав администратора могли разрабатывать службы WCF, во время установки Visual Studio создается ACL (список управления доступом) для пространства имен http://+:8731/Design_Time_Addresses". ACL установлено на (UI), что включает всех интерактивных пользователей, вошедших на компьютер. Администраторы могут добавлять или удалять пользователей из этого списка 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 и переключатели Command-Line".

См. также