Ошибки веб-службы не всплывают - PullRequest
0 голосов
/ 16 апреля 2011

Я создал веб-сервис, используя ASP.net / C # . Я добавил сервисную ссылку в файл .asmx в моем проекте Windows Phone 7 (снова C #). В нормальных условиях это прекрасно работает.

Мне нужно иметь возможность обрабатывать ситуации, когда веб-служба не работает или иным образом выдает ошибку. Когда служба недоступна, я получаю сообщение об ошибке в файле Reference.cs (по-видимому, это происходит автоматически при добавлении ссылки на службу), когда она пытается получить значение _result. Внутреннее исключение это

"The remote server returned an error: NotFound.". 

После получения ошибки приложение перестает выполняться. Мне нужно быть в состоянии отловить эту ошибку, чтобы приложение не останавливалось.

Это код, который я вызываю для выполнения моего веб-сервиса.

HighScoresWSSoapClient client = new HighScoresWSSoapClient();
  client.LoadUserByANIDCompleted += this.client_LoadUserByANIDCompleted;
  client.LoadUserByANIDAsync(this.anid);

Я добавил блок try/catch в событие client_LoadUserByANIDCompleted.

В отладчике, когда появляется ошибка, выполнение приложения останавливается. Если я нажимаю кнопку воспроизведения, он переходит к блоку try/catch и корректно переходит в секцию catch, где я могу его обработать ...

Но поскольку изначально он останавливается на линии _result, он обычно не достигает этой точки. Я в недоумении, почему он не всплывет до моего try/catch без повторного нажатия кнопки воспроизведения и не уверен, как заставить это работать в реальной ситуации.

Надеюсь, этого достаточно, чтобы продолжить и иметь смысл. Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 20 апреля 2011

Похоже, это просто странная вещь, которую делает отладчик, и нет пути к этому.Если вы запускаете этот код вне отладчика, он выдает ошибку до блока try / catch, и вы можете его обработать.Внутри отладчика вы должны нажать play, чтобы пройти через него, но затем вы можете справиться и с этим.

0 голосов
/ 16 апреля 2011

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

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