Как отладить код инициализации веб-службы .NET в VS 2010? - PullRequest
2 голосов
/ 20 января 2012

Контекст: веб-служба .NET, развернутая на локальном IIS в XP.VS 2010 используется для отладки кода веб-сервиса.

Проблема: я знаком с отладкой размещенного веб-сервиса путем подключения VS к рабочему процессу ASP.NET.Этот подход работает, если отлаживаемая часть кода не является кодом инициализации, таким как конструкторы в веб-сервисе.Когда рабочий процесс ASP NET создан, он вызывает конструкторы в веб-сервисе.Таким образом, к тому времени, когда мы подключаемся к рабочему процессу ASP NET из VS, конструкторы уже были вызваны и, следовательно, невозможно отладить.

Как подключиться к процессу ASPNET и отладить веб-сервис даже до того, как он достигконструкторы в веб-сервисе?

Ответы [ 2 ]

3 голосов
/ 20 января 2012

Почти дубликат этого .Вы можете вставить инструкцию

Debugger.Launch();

в конструктор веб-службы, чтобы получить запрос на присоединение отладчика.См. MSDN .

enter image description here

0 голосов
/ 20 января 2012

Возможно, это не лучший вариант, но это было единственное решение, которое я смог найти, когда у меня возникла похожая проблема.Поместите Thread.Sleep(xxxx) в свой конструктор и попытайтесь поспешить, чтобы побить время и привязаться, пока он не закончил инициализацию.Вы должны быть осторожны, чтобы не устанавливать слишком высокий уровень сна, поскольку служба может быть остановлена, если не выполнить инициализацию в течение определенного количества секунд.(также неприятно, когда он решает убить службу перед вами, пока вы не закончили пошаговое выполнение функции инициализации, потому что она не возвращалась достаточно быстро.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...