我们有一个IIS托管的Web方法,它在我们约10%的时间内随机死亡。在试图调试时,我们在每个真实代码行前添加了Log.Debug()消息,并且它似乎在随机行中死去。IIS托管的Web服务方法调用随机模块
有没有人看到这个或有一个想法如何调试呢?
[附加详情]
我们花了很多时间在看它,并发现了以下...
我们有访问一个单独的自承载WCF服务相同的数据库并且位于同一台计算机上。当它处于重负荷下时,网络方法每次都会发出咕噜声。如果它不在负载情况下通常工作正常(但不是100%)。
高CPU似乎不是问题的一部分。我们运行了一个创建高CPU负载的小应用程序,并且Web服务没有死亡。
当我们新建一个XmlSerializer(而不是执行sgen precomp)或者让NHibernate创建一个SessionFactory时,Web服务就会消亡。这些东西唯一的两个共同点是他们1)看起来像人们通常做的事情。2)看起来他们会相当密集。
我们已经添加了Global.asax来尝试捕获Application_End和Application_Error,但都没有触发事件。这对我来说意味着我们没有处理正常的应用程序池重置?
在我们的开发环境中重新创建这种情况将非常困难,但我认为我们已经接近了必须将其视为选项的观点。 在线程方面我认为是这样,但是会导致IIS线程死亡的原因是什么?我们在Windows事件日志中看不到任何与IIS有关的消息..这看起来很奇怪吗?不应该有一个启动信息? – 2009-08-12 19:23:13