Что вызывает исключение System.Web.HttpException с кодом ошибки 0x80070057 на Page.Flush при отладке в VS2005? - PullRequest
2 голосов
/ 27 февраля 2009

Вот полное сообщение об ошибке:

Исключение типа «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 Ответ

10 голосов
/ 13 октября 2009

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

Я нашел два решения для этого:

  1. Wrap Response.Flush и поймать исключение.
  2. Проверьте Response.IsClientConnected перед вызовом сброса.

Я не уверен на 100% во втором ... Я все еще в процессе проверки этого.

Удачи!

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