应用程序初始化失败的自定义错误页面

时间:2015-03-25 17:36:51

标签: asp.net sitecore sitecore6

我很难找到以下用例的解决方案。

我们的sitecore分析(DMS)数据库失控并经常锁定导致sql通常不可用,在这些短暂的错误间隔期间,我们使用自定义错误节点设置的自定义错误页面开始失败,因为应用程序池被重置并且在sitecore的初始化应用程序管道中需要sql。我可以在这条消息面前退出吗?

下面是堆栈跟踪:

       System.Web.Security.Membership.GetUser(String username, Boolean userIsOnline) +175
   Sitecore.Security.Domains.Domain.CreateAnonymousUserIfNeeded() +56
   Sitecore.Pipelines.Loader.EnsureAnonymousUsers.Process(PipelineArgs args) +143
   (Object , Object[] ) +80
   Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args) +191
   Sitecore.Nexus.Web.HttpModule.Application_Start() +172
   Sitecore.Nexus.Web.HttpModule.Init(HttpApplication app) +516
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +530
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +304
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +404
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +475

3 个答案:

答案 0 :(得分:1)

您可以尝试查看IIS自定义错误来捕获500,这样它们就是一个全能的,并且如果asp网络崩溃将会起作用。您可以通过IIS管理器或使用system.webServer / httpErrors元素配置它们来设置它们。

来自MSDN:http://www.iis.net/configreference/system.webserver/httperrors

答案 1 :(得分:0)

如果在发生这种情况时您有特定的错误编号,则可以在web.config中将其处理到未用完Sitecore的页面。我想你也可以设置一个默认值来捕获任何未处理的异常。

这是文件记录:

https://msdn.microsoft.com/en-us/library/h0hfz6fc%28v=vs.85%29.aspx

<customErrors>
 <error StatusCode="XXX" redirect="errorpage.htm" />
</customErrors>

答案 2 :(得分:0)

你有一个网络应用程序,而不是一个网站,这很可能是你没有得到你认为你会做的行为的原因。

查看https://msdn.microsoft.com/en-us/library/24395wz3%28v=vs.140%29.aspx并遵循global.asax方法,该方法将重定向引导到正确堆栈中的正确位置。