Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET网站似乎定期(每小时)冻结/停止/暂停/挂起_C#_Asp.net_Iis 7 - Fatal编程技术网

C# ASP.NET网站似乎定期(每小时)冻结/停止/暂停/挂起

C# ASP.NET网站似乎定期(每小时)冻结/停止/暂停/挂起,c#,asp.net,iis-7,C#,Asp.net,Iis 7,我有一个网站托管在Windows2008x64的IIS7下。IIS以64位模式运行,该网站有自己的64位应用程序池等。该网站大部分时间运行正常,然后每小时突然冻结用户请求。他们没有收到超时消息,它只是挂起,似乎要等待大约2-3分钟才能返回页面 在此期间,我监控了该应用程序池上的工作进程,发现处理器处于非常稳定的25%。记忆力很好,不会以任何可怕的方式增长 我已经设置了失败的请求跟踪,以显示每个问题,其中一个请求需要超过30秒,是的,它会记录它,但没有错误 同一服务器上不同应用程序池中的其他网站在

我有一个网站托管在Windows2008x64的IIS7下。IIS以64位模式运行,该网站有自己的64位应用程序池等。该网站大部分时间运行正常,然后每小时突然冻结用户请求。他们没有收到超时消息,它只是挂起,似乎要等待大约2-3分钟才能返回页面

在此期间,我监控了该应用程序池上的工作进程,发现处理器处于非常稳定的25%。记忆力很好,不会以任何可怕的方式增长

我已经设置了失败的请求跟踪,以显示每个问题,其中一个请求需要超过30秒,是的,它会记录它,但没有错误

同一服务器上不同应用程序池中的其他网站在停机期间工作正常


有没有关于如何调试此问题的建议?

您是否已将IIS设置为按照给定的计划回收该应用程序池上的工作进程?您指出您监控了它,但没有指出是否发现它过度循环,只是分配的内存没有以不正常的方式增加


IIS日志在此期间是否显示任何异常情况?尝试Fiddler之类的应用程序来帮助调试对web服务器的请求。

该应用程序是否依赖于每小时运行一次作业的数据库


如果数据库负载过重,则在数据库上执行查询所需的时间会更长,因此web应用程序处理页面所需的时间也会更长。

事实证明,我们使用了一个名为i-load的控件来调整图像大小。它具有在3小时后删除临时文件的功能。这是锁定IO并导致整个web应用程序停止。关掉它,一切都好了。希望这能对其他人有所帮助。

是IO进程可以阻止应用程序池挂起的线程,一旦另一个线程未完成。因此,创建另一个IO进程线程并正确处理取消令牌源。

感谢您的回复。仅当内存超过6gb且每天清晨一次时,应用程序池才设置为循环使用。我也有它的日志应用程序池是回收和事件日志中没有这方面的内容。我们已经查看了网站请求的日志,这并不奇怪。我可以查看IIS日志吗?您可能已经检查过了,但是您可以在以下位置找到所有与IIS相关的日志:%SYSTEMROOT%\System32\LogFiles在我的案例中运行IIS7,它们出现在C:\Windows\System32\LogFiles\在用户报告行为期间,您是否尝试在本地单步执行代码?也请退房。我知道您表示处理器稳定在25%,但这可能有助于您确定哪个线程运行时间长。再次感谢。我们不使用iis来记录请求,因为它们会变大。我们已经尝试过DebugDiag,但它只适用于32位,不适用于64位。您知道SQL Server中保存的会话状态、文件中的Viewstate或动态压缩有什么问题吗?啊,是的,我看到64位版本的DebugDiag只允许分析,不允许捕获,所以这没有帮助。您可以安装64位版本的Windows Developer调试工具,在您的上一个问题中可以找到,这有点开放。我可以用Viewstate和动态压缩写一本关于SQL Server中ASP.NET会话状态的注意事项的书。虽然没有什么突出的地方指向这些事情中的任何一个,但我不能确定,如果看不到解决方案,我不能确定。确实如此,但我们已经分析了db,并且在那里发生了不寻常的事情。