Ограничения на отладку WCF
Существуют три способа, позволяющих начать отладку службы WCF:
Отладка клиентского процесса, который вызывает службу. Отладчик выполняет шаг с заходом в службу. Служба и используемое клиентское приложение не обязательно должны находиться в одном и том же решении.
Отладка клиентского процесса, который отправляет запрос службе. Служба должна быть частью решения.
Использование диалогового окна Присоединение к процессу для присоединения текущей работающей службы. Отладка начинается внутри службы.
В этом разделе описаны ограничения на применение данных сценариев.
Ограничения на выполнение шага с заходом в службу
Чтобы выполнить шаг с заходом в службу из отлаживаемого клиентского приложения, необходимо соблюдать следующие условия.
Для вызова службы клиент должен использовать синхронный клиентский объект.
Операция контракта не может быть односторонней.
Если сервер асинхронный, то при выполнении кода внутри службы невозможно просмотреть полный стек вызовов.
В файле app.config или Web.config должна быть включена отладка с помощью показанного ниже кода.
<system.web> <compilation debug="true" /> </system.web>
Этот код требуется добавить только один раз. Его можно добавить, внеся изменения в файл .config или выполнив присоединение к службе с помощью диалогового окна Присоединение к процессу. При использовании диалогового окна Присоединение к процессу код отладки добавляется к файлу .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 Development Server. Сведения об отладке локальной службы см. в статье "Практическое руководство. Отладка локальной службы WCF".
Если появится сообщение об ошибке "Не удается автоматически выполнить шаг в сервер". Восстановите установку Visual Studio, чтобы попытаться устранить эту проблему. Это может произойти при установке Visual Studio перед установкой ASP.NET.