Я создал веб-сервис, используя 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
без повторного нажатия кнопки воспроизведения и не уверен, как заставить это работать в реальной ситуации.
Надеюсь, этого достаточно, чтобы продолжить и иметь смысл. Спасибо за помощь!