Что вызывает System.Web.HttpException с кодом ошибки 0x80070057 на Page.Flush при отладке в VS2005?
Вот полное сообщение об ошибке:
Исключение типа System.Web.HttpException произошло в System.Web.dll, но не было обработано в пользовательском коде.
Дополнительная информация: удаленный хост закрыл соединение. Код ошибки - 0x80070057.
и код нарушения:
char[] buffer = oPage.HTML.HTML.ToCharArray();
Page.Response.Write(buffer, 0, buffer.Length);
Page.Response.Flush();
Page.Response.End();
OPage.HTML.HTML - это строка в настраиваемом объекте страницы, используемом нашим приложением. Исключение запускается на Page.Flush () и кажется безобидным - я просто нажимаю «продолжить», и все идет нормально. Это никогда не появляется во время выполнения.
Я погнался за многими, многими поисками Google в кроличьи норы и ничего не нашел. Visual Studio 2005, Vista Ultimate (IIS7).
Ответов (1)1
Я уже некоторое время сталкиваюсь с этой же ошибкой, и я понимаю, что при вызове Flush на другом конце должно быть соединение, в противном случае возникает эта ошибка. Это легко попасть в «огонь и забыть» вид модели при написании веб - страниц, но когда клиент отключается (в данном случае отладки, вы клиент), нет нигде флеша к .
Я нашел два решения:
- Оберните Response.Flush и перехватите исключение.
- Перед вызовом flush проверьте Response.IsClientConnected.
Насчет второго я не уверен на 100% ... Я все еще проверяю его.
Удачи!