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


Ограничения отладки WCF

Существует три способа начать отладку службы WCF:

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

  • Выполняется отладка клиентского процесса, который выполняет запрос к службе. Служба должна быть частью вашего решения.

  • Вы используете Attach to Process для присоединения к службе, которая в настоящее время работает. Отладка начинается внутри службы.

В этом разделе описываются ограничения для этих сценариев.

Ограничения на доступ к службе

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

  • Клиент должен вызвать службу с помощью синхронного клиентского объекта.

  • Операция контракта не может быть односторонняя.

  • Если сервер является асинхронным, вы не можете просмотреть полный стек вызовов во время выполнения кода внутри службы.

  • Отладка должна быть включена со следующим кодом в файле app.config или Web.config:

    <system.web>
      <compilation debug="true" />
    </system.web>
    

    Этот код необходимо добавить только один раз. Этот код можно добавить, изменив файл .config или подключив его к службе с помощью присоединения к процессу. При использовании Attach to Process в службе, код отладки автоматически добавляется в файл .config. После этого можно выполнить отладку и шаг в службу, не изменив файл .config.

Ограничения на выход из службы

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

Ограничения автоматического подключения к службе

Автоматическое присоединение к службе имеет следующие ограничения:

  • Служба должна быть частью отлаживаемого решения Visual Studio.

  • Сервис должен размещаться. Это может быть частью проекта веб-сайта (файловая система и HTTP), проекта веб-приложения (файловая система и HTTP) или проекта библиотеки служб WCF. Проекты библиотек службы WCF могут быть библиотеками служб или библиотеками служб рабочих процессов.

  • Служба должна вызываться из клиента WCF.

  • Отладка должна быть включена со следующим кодом в файле app.config или Web.config:

    <system.web>
      <compilation debug="true" />
    <system.web>
    

самостоятельный хостинг

Самостоятельно хостируемая служба — это служба WCF, которая не выполняется в среде IIS, в хосте службы WCF или на сервере разработки ASP.NET. Сведения о отладке локальной службы см. в статье "Практическое руководство. Отладка службы Self-Hosted WCF".

Если появится сообщение об ошибке "Не удается автоматически выполнить шаг в сервер," восстановите установку Visual Studio, чтобы попытаться устранить эту проблему. Это может произойти при установке Visual Studio перед установкой ASP.NET.