Как я могу остановить исключения в веб-сервисе, выдаваемом клиентом / абонентом? - PullRequest
1 голос
/ 23 июня 2009

Я пытаюсь отладить проблему с приложением .net compact framework, работающим на Windows Mobile 6. Это происходит, когда я вызываю вызов веб-службы на моей машине для разработки.

Мне не нужна помощь с фактической ошибкой, но с вызовом отладчика в правильное время.

Я запускаю веб-сервис в режиме отладки и могу нормально запускать точку останова в visual studio, поэтому я знаю, что она подключена нормально. У меня проблема в том, что, когда мой веб-сервис выдает исключение, вызов веб-сервиса немедленно завершается, и текст исключения появляется на экране моего мобильного клиента. Чего я действительно хочу, так это того, что исключение вызывает прерывание выполнения Visual Studio и позволяет мне использовать отладчик для дальнейшего изучения. Как вы можете себе представить, неспособность получить номер строки довольно разочаровывает, так как мне приходится шаг за шагом проходить через код, пока на мобильном клиенте не появится исключение.

Я читал в Интернете, как вы можете превратить исключения в SOAP для передачи удаленным клиентам, я думаю, что может быть , что происходит, но я не хочу этого!

Ответы [ 2 ]

1 голос
/ 23 июня 2009

Похоже, что Visual Studio настроен только для обработки «необработанных» исключений, но из того, что я могу собрать, код, вызывающий мой метод веб-службы, оборачивает его в попытку ... поймает, обрабатывает ошибку и передает ее клиент поверх SOAP.

Если вы идете в Отладка-> Исключения ... в Visual Studio есть флажки, чтобы заставить Visual Studio вызывать отладчик для исключений, обработанных в рамках .NET - проверьте столбец «брошенный» рядом с «Общий язык» Исключения во время выполнения, и он затем правильно его подбирает!

0 голосов
/ 23 июня 2009

Возникает ли исключение в вашем приложении (как оно обрабатывает результат вызова веб-службы) или происходит в удаленной службе, и исключение передается обратно?

В качестве временного обходного пути вы можете попытаться заключить вызов веб-службы в блок Try / Catch, а затем вызвать его снова из раздела Catch с точкой останова на вызове. Таким образом, когда в первый раз произойдет сбой, выполнение будет прервано при втором вызове, поэтому вы можете войти в него или проверить все значения, сколько хотите, без необходимости проходить через код, чтобы добраться до этой точки.

...