1

我在偶尔挂起的 IIS 6 (Windows Server 2003) 上运行一个网站。

时间线:

发布到野外,网站运行了 3 天。

网站挂起每个请求,直到网站停止和启动。

网站运行 2 周没有问题。

网站在每次请求时都会挂起,直到网站重新启动。

在挂起开始之前,我们看到了一些应用程序日志条目:Faulting application w3wp.exe, faulting module unknown, version 0.0.0.0 fault address --------。

安装在网站上的应用程序是用 .Net 2.0 编写的。

谁能指导我解决这个问题?谢谢!

4

3 回答 3

2

您最好的选择可能是使用 adplus 捕获挂起的 w3wp 进程的内存转储,然后使用 windbg + sos 扩展来尝试确定挂起的原因。

您可以在这里获得 adplus 和 Windbg:http: //www.microsoft.com/whdc/devtools/debugging/default.mspx

此外,Tess Ferrandez 的博客绝对是有关学习如何使用 Windbg 分析内存转储的信息的金矿。她甚至有一组实验室,您可以针对特定场景进行实验。

https://docs.microsoft.com/en-us/archive/blogs/tess/

于 2009-03-13T17:35:46.913 回答
0

发生这种情况的原因有很多。几年前,我在生产中的 web 项目中发生了这种情况,并打电话给微软来修复它。我希望我能给你具体的细节,但这是我记得的。

.NET 将文件夹缓存在您的 Web 应用程序中。服务器上有一个注册表项(不记得在哪里)设置了文件夹限制(信不信由你)。默认情况下,限制设置为 150 个文件夹。如果您的 Web 应用程序中有多个文件夹,并且您尝试访问第 151 个文件夹,则会导致 IIS 崩溃。

是的,这听起来很疯狂,但相信我,我在微软工作了数周,直到我们找到了崩溃的原因。当时的答案是提高注册表的限制并重新启动服务器。这是几年前的事了,我希望在以后的更新中可以解决这个问题,但我提供给你是为了以防你使用的是旧版本的 Server 2003。

很抱歉,我无法提供更具体的细节,但我只想让你知道我的经历,以防这听起来像你的问题。

于 2009-03-13T18:07:20.847 回答
0

make sure IIS is set to be able to recycle its process automaticly, might help to fix the issue if it is a memory leak. (well ok cope with the problem not fix)

My advice is to give you app its own application pool, so you are 100% sure that its the appication you think pulling the server down, what dose the application log say when this happens?

From the information you have given it sounds like its a memory leak or open db connection / thread issue.

P.s If you are using N2 there was a known issue that when IIS recycled it wouldnt come back up.

于 2009-03-18T16:44:01.993 回答