Событие Application_End () вызывается без какого-либо вызова в global.ascx - PullRequest
1 голос
/ 20 июля 2011

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

Ответы [ 4 ]

2 голосов
/ 20 июля 2011

Запуск в режиме отладки? Домен приложений перерабатывается каждые 15 динамических перекомпиляций. Повторяется при изменении файлов, например, web.config. Он даже перезапускается, когда файлы и папки, не относящиеся к приложению, изменяются на сайте приложения. Поэтому проверьте, происходит ли это в режиме выпуска.

Между прочим, вы можете изменить количество динамических перекомпиляций, которые вызывают сброс AppDomain: в web.config установите его здесь:

<compilation numRecompilesBeforeAppRestart="15" />

Совет: не используйте сеансы InProc во время отладки - вместо этого используйте StateServer или SQL State (мои предпочтения).

Подробнее см. в этом блоге .

1 голос
/ 20 июля 2011

Первое место, куда нужно заглянуть, это Просмотр событий.Там вы можете найти любое необработанное исключение, сгенерированное в рабочем процессе.

0 голосов
/ 22 июля 2011

Состояние сеанса недоступно в Application_End. Это так просто. Application_End - это событие, которое срабатывает после того, как все остальное давно прошло. Запись в журнале событий хорошо это описывает.

0 голосов
/ 20 июля 2011

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

...