欢迎来到天天文库
浏览记录
ID:27524038
大小:68.47 KB
页数:9页
时间:2018-12-03
《aspnet站点自动重启问题排查》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、ASP.NET站点自动重启问题排查项目中遇到的问题排查原因最近调试一个东西,写了个监控页面,发现自己Cache的数据在设定的过期时间远远还没有到的时候就过期了,于是我着手排查了下出现问题的原因:1、程序会删除缓存一查找了整个项目,发现程序里根本没有删除缓存的操作,所以这个原因可以排除。2、写缓存的方法有问题~这个也可以排除,因为很多地方用这个dll,其它项目不存在这个bug,所以这个原因也可以排除。3、服务器上有清除所有内存的程序一于是一个个服务终止了下,最后发现终止了一个动转静服务后,程序就没有异常了,所以这个问题是因为动转静服务引起的了
2、。解决方案反编译了这个动转静服务的源码,发现并没有清理内存的操作,于是想到了是不是因为动转静服务的什么操作引起了应用程序池Appliacation_End,然后eache都被回收了。于是在Global.asax里面的Application_End方法里写了下面的代码,用于记录是否引起了这个事件,以及引起事件触发的原因。protectedvoidApplication_End(objectsender,EventArgse)HttpRuntimeruntime=(HttpRuntime)typeof(System.Web.HttpRuntim
3、e).InvokeMember(〃_theRuntime〃,BindingFlags.NonPublic
4、BindingFlags.Static
5、BindingFlags.GetField,null,null,null):if(runtime==null)return;stringshutDownMessage=(string)runtime.GetType().InvokeMember(〃_shutDownMessage〃,BindingFlags.NonPublic
6、BindingFlags.Instance
7、BindingFlags.
8、GetField,nu11,runtime,null):stringshutDownStack=(string)runtime.GetType().InvokeMember(”shutDownStack",BindingFlags.NonPublicindingFlags.Instance
9、BindingFlags.GetField,null,runtime,null):if(!EventLog.SourceExists(〃.NETRuntime〃)){EventLog.CreateEventSource(z/.NETRuntime",〃A
10、pplication〃);}EventLoglog=newEventLogO;log.Source=/Z.NETRuntime";log.WriteEntry(String.Format(〃_shutDownMessage={0}_shutDownStack={1}〃,shutDownMessage,shutDownStack),EventLogEntryType.Error);结果,日志文件里头果然有记录,记录都为:ThedescriptionforEventID(0)inSource(.NETRuntime)cannotbefound.
11、ThelocalcomputermaynothavethenecessaryregistryinformationormessageDLLfilestodisplaymessagesfromaremotecompCE=flagtore叩portfordertoftheevent:shutDouter.Youmaytrievethisdtails.ThefownMessage=Rbeabletouseescription;llowinginfoecompilatiothe/AUXSOURseeHelpandSrmationispanlimit
12、of15reachedHostingEnvironmentinitiatedshutdownHostingEnvironmentcausedshutdown_shutDownStack=atSystem.Environment.GetStackTrace(Exceptione,BooleanneedFileinfo)atSystem.Environment.get_StackTrace()atSystem.Web.Hosting.HostingEnvironment.InitiateShutdownlnterna1()atSystem.We
13、b.Hosting.HostingEnvironment.InitiateShutdown()atSystem.Web.HttpRuntime.ShutdownAppDomain
此文档下载收益归作者所有