非常奇怪的IIS6 asp.net网站行为

时间:2010-02-19 13:53:11

标签: asp.net iis .net-3.5

我的网站有一个奇怪的问题。这是在专用服务器IIS6上托管的asp.net(.net 3.5)网站。

最近我有一个奇怪的行为,网站挂起,只是不回复,除非我去iis并重新启动应用程序池或整个IIS - 但最奇怪的是,如果我去远程桌面的服务器并尝试在本地访问它,它工作得很好。

我读了几个关于死锁和挂起的线程,因为内存泄漏和非关闭的sql连接但为什么它仍然可以在本地工作?

如果代码有问题 - 为什么它仍然在本地工作?

如果托管方面存在一些问题(如防火墙问题),为什么iisreset有帮助?

任何想法都将不胜感激。谢谢!

3 个答案:

答案 0 :(得分:1)

我们遇到了这个问题,我们有一个解决方案。 IIS有两个线程池来处理请求。一个线程池用于外部请求。另一个池用于本地请求。我们的问题是由后端代码中的死锁引起的。一旦发生死锁,所有外部请求都排队但不提供服务,因为所有服务线程都在使用中。从Web服务器打开网站使用另一个线程池,因此请求得到服务。我们绝对是积极的,这是一个网络问题,但WinDbg证明不是这样。 浏览此处获取更多信息: MSDN blog entry about IIS and threads

minLocalRequestFreeThreads

(另外,搜索minFreeThreads以查看非本地请求线程池。)

祝你好运!

答案 1 :(得分:0)

您确定网站是否为所有外部用户挂起,以便它不仅仅是一个用户?

IIS每次只为每个用户运行一个页面,因此如果在永久循环中捕获到一个请求,则该单个用户将体验到服务器已完全停止,因为在该页面超时之前,所有页面都不起作用。对于其他用户,服务器仍然可以正常工作。

您可以使用其他浏览器或启动同一浏览器的新实例(可以使用IE浏览器,而不是Firefox)来测试。

答案 2 :(得分:0)

嗯没有足够的信息来真正给你一个答案,但如果它从服务器本地响应,我会先看看你的防火墙。你是否在FW后面有另一台服务器,就像SQL服务器一样?尝试浏览,因为它会告诉你问题所在。

我的错误配置负载均衡器。