Поскольку вы предоставили мало информации о вашей системе:
Вы , вероятно, досрочно завершаете вызов веб-службы, например
HttpContext.Current.Response.End()
Код веб-службы (в .NET), вероятно, пытается завершить запрос, но вы закрыли соединение раньше. Это также происходит с Response.Redirect()
, но вы никогда не увидите его на веб-странице, потому что вы уже завершили вывод для пользователя. Это не относится к вашему 404. Код веб-службы выдает WebException
, но нет ничего, что можно обработать / отформатировать вывод.
Обновление
На основании ваших отзывов я могу сделать вывод, что ваша проблема, вероятно, либо:
- В данных, отправляемых веб-сервису
- Как веб-сервис обрабатывает данные
Вы должны загрузить Fiddler2 и прослушать http-запрос к вашему веб-сервису, чтобы проверить, что на самом деле происходит по проводам. Если все подтвердится, я могу подумать только о двух вещах:
- Что-то в вашем
Request
/ Response
не так. Вместо этого вы можете использовать WebClient
и позвонить либо UploadData(...)
, либо UploadString(...)
, чтобы передать ваши данные в веб-службу.
- Что-то не так в веб-службе, которая заставляет его закрывать соединение, прежде чем завершить ответ так, как этого ожидает ваш клиент.
WebException: лежащее в основе соединение было закрыто: при получении произошла непредвиденная ошибка. Должно произойти, только когда клиент ожидает получить данные (например, тело после заголовка), но сервер завершает ответ рано .