Веб-сервис недоступен - PullRequest
0 голосов
/ 16 июня 2009

У меня есть веб-приложение ASP.NET C # 3.5, которое использует другую веб-службу ASP.NET в качестве веб-ссылки. Веб-сервис встроен в некоторое фирменное аппаратное устройство. Проблема в том, что у этого устройства были проблемы, и оно не всегда было доступно. Мое веб-приложение страдает от этого, так как загрузка занимает более минуты. Это действительно загружает, но не приемлемо.

Служба создается в блоке try catch, и не генерируется исключение, но в выходных окнах отображается:

Первое случайное исключение типа «System.Net.WebException» произошло в System.dll

Я знаю, что есть лучший способ справиться с этим, но я рисую пробелы.

Любая помощь приветствуется.

ОБНОВЛЕНИЕ: Все еще ищите ответ о том, как обращаться с веб-сервисами, которые становятся недоступными, не затрагивая сайт.


Разорвав его, я нашел исключение. Это стандартное исключение «Невозможно подключиться». Проблема теперь в тайм-ауте, я попытался установить asyncTimeout на 5000 в web.config в свойствах System.Web -> Pages. Это все еще занимает около 20 секунд, чтобы бросить исключение. Есть идеи?

Ответы [ 4 ]

1 голос
/ 27 июня 2011

Простое решение, опрос сервиса с использованием JavaScript после загрузки страницы.

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

Если вы увидели «исключение первого шанса», но ваш обработчик исключений его не получил, это означает, что исключение было обработано в другом месте (проглочено, использовано обработчиком исключения и т. Д.) Возможно, что-то уже есть в библиотеках .NET обработал это исключение, и вам не нужно беспокоиться об этом в своем коде. Или, может быть, вы оставили какое-то исключение, глотая где-то в вашем коде.

Вы должны рассмотреть вопрос об использовании тайм-аута в своем веб-запросе.

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

В дополнение к вышесказанному, я бы использовал отладчик http (например, fiddler2 ), чтобы лучше понять, что происходит в сети.

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

Без каких-либо подробностей относительно частоты / использования услуги и отсутствия кода, здесь есть мысль или две.

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

Я заметил, что некоторые люди в Интернете сказали, что им удалось обойти это (в их сценарии), установив KeepAlive в false на запрашивающем объекте, так что ваш не случайно используют старое (устаревшее) соединение со службой. Возможно, вы пытаетесь «сохранить жизнь», но веб-сервер отключил соединение с вами. Стоит попробовать ...

Удачи!

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