Не могу понять нюанс работы ASP.NET в случае возникновения exception. Я так понимаю, что если где-то что-то происходит не так, exception должен происходить только для конкретного пользователя – для остальных обработка должна продолжаться. На самом же деле приложение падает намертво для всех – выдается стандартное сообщение «Runtime Error Description: An application error occurred on the server…». При этом настроена обработка IHttpModule и сообщение об ошибке через Application_OnError пишется в базу данных. Хуже всего, что падает примерно раз в 2-3 недели (приложение построено на AspNetForums – достаточно большое и все ошибки сложно выцепить).
Т.е. вопрос собственно в том – как сделать так, чтобы не происходило глобальное падение приложения?
вообще-то исключение в asp.net рубит только текущий реквест, но никак не все приложение. так что что-то у тебя более глобальное происходит там...
А текст ошибки хоть какой полностью?Из предписания Верховного Суда:
1) Главе ЦИК — признать выборы недействительными...
2) Компьютерному отделу ЦИК — удалить Януковича из папки Избранное...
C>Не могу понять нюанс работы ASP.NET в случае возникновения exception. Я так понимаю, что если где-то что-то происходит не так, exception должен происходить только для конкретного пользователя – для остальных обработка должна продолжаться. На самом же деле приложение падает намертво для всех – выдается стандартное сообщение «Runtime Error Description: An application error occurred on the server…». При этом настроена обработка IHttpModule и сообщение об ошибке через Application_OnError пишется в базу данных. Хуже всего, что падает примерно раз в 2-3 недели (приложение построено на AspNetForums – достаточно большое и все ошибки сложно выцепить).
C>Т.е. вопрос собственно в том – как сделать так, чтобы не происходило глобальное падение приложения?
Help! Вопрос достаточно актуальный. Пока приложение приходиться периодически "поднимать" путем перекопированния web.config..
Здравствуйте, Dimon aka Manowar, Вы писали:
DAM>вообще-то исключение в asp.net рубит только текущий реквест, но никак не все приложение. так что что-то у тебя более глобальное происходит там... DAM>А текст ошибки хоть какой полностью?Из предписания Верховного Суда: DAM>1) Главе ЦИК — признать выборы недействительными... DAM>2) Компьютерному отделу ЦИК — удалить Януковича из папки Избранное...
DAM>данное сообщение получено с www.gotdotnet.ru DAM>ссылка на оригинальное сообщение
В том-то и дело, что ошибки относительно неглобальные — то картинку отмасштабировать не может, то из базы что-то прочитать не может.
Первое, что приходит в голову — добавить ко всем IHttpHandler IHttpHandler глобальный try catch, но это ihmo, не подход..
... << RSDN@Home 1.1.3 stable >>
Re: RE: Восстановление после сбоя
От:
Аноним
Дата:
16.03.05 04:41
Оценка:
По доке приложение падает, если происходит ошибка, не обработанная где-либо.
Добавил в Application_OnError (Global.asax) строчку Server.ClearError().
Падает все равно. Как такое может быть???
Может все таки попытаться найти и зафиксить ошибки?
-------------------------
Добавил в Application_OnError (Global.asax) строчку Server.ClearError().
-------------------------
лучше добавить:
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
siteWriteApplicationMessage(Server.GetLastError().ToString())
End Sub
siteWriteApplicationMessage — пущай или на мыло и в файл пишет.
я после asp от такой штуки ваобще балдю раньше отлов половины скрытых ошибок приходился на пользователей а сейчас им достаеться не больше 5%.
Это все, конечно, правильно, но читайте, пожалуйста, предыдущие сообщения.
Перед этим я написал, что логгинг ошибок делается в IHttpModule, на событии OnError (выполняются проверки, идет запись в базу данных). Ошибки при этом возникают разнообразные и к сути вопроса не имеют отношения; происходят они достаточно редко. В дополнение к этому в Global.asax добавил Server.ClearError() — чтобы точно ни одна ошибка не прошла "наверх" и не убила процесс. Однако, все равно периодически это происходит.
Итак, по сути 2 вопроса:
1. Что ЭТО может быть.
2. Как сказать процессу, чтобы он рестартовал в случае crash.
Hello, "chuk100" > Т.е. вопрос собственно в том – как сделать так, чтобы не происходило глобальное падение приложения? >
Искать надо ошибки в своем приложении. Либо, настроить робота, который будет при возникновении такой ошики перегружать приложение целиком.
Posted via RSDN NNTP Server 1.9
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Здравствуйте, chuk100, Вы писали:
C>Это все, конечно, правильно, но читайте, пожалуйста, предыдущие сообщения.
C>Перед этим я написал, что логгинг ошибок делается в IHttpModule, на событии OnError (выполняются проверки, идет запись в базу данных). Ошибки при этом возникают разнообразные и к сути вопроса не имеют отношения; происходят они достаточно редко. В дополнение к этому в Global.asax добавил Server.ClearError() — чтобы точно ни одна ошибка не прошла "наверх" и не убила процесс. Однако, все равно периодически это происходит. C>Итак, по сути 2 вопроса: C>1. Что ЭТО может быть. C>2. Как сказать процессу, чтобы он рестартовал в случае crash.
C>данное сообщение получено с www.gotdotnet.ru C>ссылка на оригинальное сообщение