2012-04-02 66 views
0

我有一个运行在我们两个活动服务器上的大型网络应用程序。我们的部分服务器端C#代码调用第三方应用程序来为我们完成一项任务。如何诊断应用程序池问题

该任务在大多数情况下都能正常工作,但在某个时间点停止工作,直到AppPool被回收。

这一切都发生在w3wp.exe的,所以我可以看到它在过程监控运行这样的(当它不工作),

Thread Create 
Access the file PreviewGenerator.exe 
Hive unloaded (this is the registry) 
Thread Exit 

而且像这样在工作时,

Thread Create 
Access the file PreviewGenerator.exe 
Process Start 
Does heaps of stuff with PreviewGenerator.exe including reading/writing/registry, etc. 
Process Exit 
Hive unloaded 
Thread Exit 

如何在我的AppPool中调试发生了什么以及为什么启动一个单独的进程在某些时间不工作?

回答

0

我发现最好的做法是在IIS中为我的应用程序创建一个单独的应用程序池,并为它可以使用的RAM数量设置一个上限。此外,我发现打开应用程序池设置下的“生成回收事件日志条目”项也很有用。

然后,您可以进入系统事件日志和筛选出的项目与“是”的来源,了解什么是在应用程序池回事,当他们重新启动,当他们从闲置等

停止

我认为我们的情况中的主要问题是IIS盒内存不足。调整应用程序池并添加一些额外的RAM似乎解决了它。