在aspnix共享主机上托管的asp.net mvc 2应用程序的随机,意外关闭

时间:2010-12-08 16:14:43

标签: asp.net asp.net-mvc-2 application-shutdown

我在aspnix http://www.aspnix.com的共享主机平台上托管了一个非常简单的mvc 2应用程序。

有些时候,用户在网站导航期间丢失了身份验证(我使用标准会员提供商),并被重定向到登录页面。 经过一些研究后,我开始怀疑会话因应用程序重启而丢失,因此我决定安装并配置运行状况监视服务,以便跟踪应用程序关闭和重启。

在对应用程序发出一些请求后,我开始在运行状况监视日志中看到以下条目:

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图像!

经过一番研究后,我在Scott Gu博客上发现了这篇有趣的帖子: http://weblogs.asp.net/scottgu/archive/2005/12/14/433194.aspx

所以我像Scott一样拦截global.asax中的Application_End事件,然后每当我的应用程序关闭时发送邮件......并且内容每次都是相同的:

_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 个答案:

答案 0 :(得分:0)

aspnix很可能就是问题所在。从他们切换到Amazon EC2后,我的服务更加可靠和快捷。