Случайное, неожиданное завершение работы приложения asp.net mvc 2, размещенного на общем хостинге aspnix
У меня есть очень простое приложение mvc 2, размещенное на платформе общего хостинга на aspnix http://www.aspnix.com/.
Иногда пользователи теряли аутентификацию (я пользуюсь стандартным провайдером членства) во время навигации по сайту и перенаправляются на страницу входа. После некоторых исследований я начинаю подозревать, что сеанс потерян из-за перезапуска приложения, поэтому я решил установить и настроить службу мониторинга работоспособности для отслеживания завершения работы приложения и перезапуска.
После некоторых запросов к приложению я начинаю видеть следующую запись в журнале мониторинга работоспособности:
Event code: 1002 Event message: Application is shutting down. Reason: Hosting environment is shutting down. Event time: 12/8/2010 8:16:33 AM Event time (UTC): 12/8/2010 3:16:33 PM Event ID: d92fbba0487b4bab97bd7eff4b0083bb Event sequence: 38 Event occurrence: 1 Event detail code: 50002 Application information: Application domain: /REMOVED FOR PRIVACY! Trust level: Full Application Virtual Path: / Application Path: C:\REMOVED FOR PRIVACY! Machine name: REMOVED FOR PRIVACY! Process information: Process ID: 12516 Process name: w3wp.exe Account name: REMOVED FOR PRIVACY!
а затем перезапустите приложение.
Затем я связался со службой поддержки aspnix и сказал, что с сервером все в порядке, что другой большой сайт работает без проблем на том же сервере и что это, вероятно, проблема моего приложения.
Поэтому я начинаю расследовать в своем заявлении, но не могу найти никаких проблем.
Я также понимаю, что выключение происходит также, когда я запрашиваю статический ресурс, например, изображение PNG!
После некоторых исследований я нашел этот интересный пост в блоге Скотта Гу: http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx
Поэтому я перехватываю событие Application_End в global.asax, как учил Скотт, а затем отправляю почту каждый раз, когда мое приложение закрывается... и содержимое всегда одинаковое:
_shutDownMessage=HostingEnvironment initiated shutdown
HostingEnvironment caused shutdown
_shutDownStack= at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
at System.Environment.get_StackTrace()
at System.Web.Hosting.HostingEnvironment.InitiateShutdownInternal()
at System.Web.Hosting.HostingEnvironment.InitiateShutdownWithoutDemand()
at System.Web.Hosting.PipelineRuntime.StopProcessing()
Я знаю, что причинами перезапуска могут быть изменения файла web.config, изменения в файлах bin или aspx, чрезмерное использование памяти и т. Д. Но в этом случае завершение работы приложения появляется также по запросу статического ресурса и также другая часть приложения очень проста и использует только стандартный поставщик членства и некоторые запросы linq to sql...
Я также подписался на событие Application_Error для всех необработанных исключений без результатов.
Любая идея?
1 ответ
Aspnix, скорее всего, проблема. С момента перехода с них на Amazon EC2 у меня появился гораздо более надежный и быстрый сервис.