Поведение отладки сервиса

В примере ServiceDebug показано, как можно настроить параметры поведения отладки службы. Пример основан на руководстве по началу работы, которое реализует ICalculator контракт службы. Этот пример явно определяет поведение отладки службы в файле конфигурации. Это также можно сделать императивно в коде.

В этом примере клиентом является консольное приложение (.exe), а служба хостится с помощью Internet Information Services (IIS).

Замечание

Процедура установки и инструкции по сборке для этого примера находятся в конце этого раздела.

Файл Web.config для сервера определяет поведение отладки службы, чтобы включить страницу справки и обработку исключений, как показано в следующем примере.

<behaviors>
     <serviceBehaviors>
         <behavior name="CalculatorServiceBehavior">
         <!-- WARNING: Setting includeExceptionDetailInFaults = "True" could result in leaking secured server information to the client.-->
         <!-- Please set this to false when deploying -->
             <serviceDebug includeExceptionDetailInFaults="True" httpHelpPageEnabled="True"/>
         </behavior>
     </serviceBehaviors>
</behaviors>

<serviceDebug> — это элемент конфигурации, позволяющий изменять свойства поведения отладки службы. Пользователь может изменить это поведение, чтобы достичь следующего:

  • Это позволяет службе возвращать любое исключение, вызываемое кодом приложения, даже если исключение не объявляется с помощью FaultContractAttribute. Это делается путем установки includeExceptionDetailInFaults в true. Этот параметр полезен при отладке случаев, когда сервер создает неожиданное исключение.

    Это важно

    Этот параметр небезопасно включать в рабочей среде. Непредвиденное исключение сервера может содержать некоторые сведения, которые не предназначены для клиента, и поэтому установка includeExceptionDetailsInFaults на true может привести к утечке информации.

  • ServiceDebug<> также позволяет пользователю включить или отключить страницу справки. Каждая служба может по желанию открыть страницу справки с информацией о службе, включая конечную точку для получения WSDL. Это можно включить, установив параметру httpHelpPageEnabled значение true. Это позволяет странице справки быть возвращённой в ответ на GET-запрос по базовому адресу службы. Этот адрес можно изменить, задав другой атрибут httpHelpPageUrl. Эту защиту можно сделать с помощью HTTPS вместо HTTP. Это можно сделать, задав httpsHelpPageEnabled и httpsHelpPageUrl.

При запуске примера запросы и ответы операции отображаются в окне консоли клиента. Первые три операции (добавление, вычитание и умножение) должны выполняться успешно. Последняя операция ("деление") завершается ошибкой деления на нулевое исключение.

Настройка, сборка и запуск примера

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

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

  3. Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в запуска примеров Windows Communication Foundation.