我很难找到以下用例的解决方案。
我们的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
答案 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方法,该方法将重定向引导到正确堆栈中的正确位置。