Отладка службы WCF, размещенной в локальных IIS, не работает
У меня есть одно решение WCFSampleSolution, и у него есть все мои проекты - веб-служба, клиент и веб-сайт. Структура что-то вроде:
- WCFSampleSolution
- C:WCFSampleWebsite
- wcfservice в
- WCFWebClient
Я создал проект WCFService для своих служб. Он содержит файл iservice1.cs и Service1.цезий. Затем я разместил службу в IIS. Я сделал это, создав сайт и добавляя .ВПВ и web.файлы конфигурации для проекта веб-сайта. Затем опубликовал его в IIS. Когда я запускаю http:MyMachineNameWebsiteService.svc, он показывает описание службы. Затем я создаю веб-клиент, который вызывает веб-сервис. Я использовал ссылку на службу, чтобы добавить службу. Он вызывает метод Service1. Работает отлично. Но я не могу отладить эту программу / настройку. Я проверил файлы конфигурации в проекте WCFWebClient и проекте веб-сайта, и у них есть правильные настройки отладки.
<compilation debug="true">
Я положил точки останова, но контроль никогда не переходит на мою службу seb. Я также попробовал процесс attach, но он также не работает. Но я смог отладить один из моих других проектов WCF. Обстановка немного изменилась. В этом проекте я скопировал .svc-файл и конфигурация в моем веб-клиенте, и отладка работает нормально.
пожалуйста, помогите!!
3 ответов
вы размещаете свою службу на IIS, поэтому я уверен, что вы должны подключаться к w3wp.процесс exe. При попытке прикрепить, если VS встроенный веб-сервер запускается, затем присоединитесь к этому процессу.
что я нахожу особенно простым, это два экземпляра visual studio open (особенно если вы используете NUnit или делаете что-либо для тестирования кода). Один прикрепит NUnit или что угодно, а другой прикрепит w3wp.процесс exe. Самый простой способ:
1) поместите точку останова в 1-й экземпляр visual studio кода прямо перед тем, как он попадет в службу WCF, размещенную на вашем компьютере.
2) Как только код остановится в точке останова, установите точки останова во 2-м экземпляре visual studio, где вы хотите сломать, затем присоедините w3wp.процесс exe.
3) Как только вы продолжите, точка останова в сервисном коде должна быть нажата.
иногда легче найти идентификатор процесса, а также при подключении w3wp.исполняемый. С помощью IIS можно перейти в раздел "рабочий процесс" и найти идентификатор процесса для присоединения к имени пула приложений.
@user465876-другой подход, который является менее хлопот можно найти здесь:WCF больше не может входить в локально размещенную службу-почему бы и нет?