您的位置:首页 > 移动开发

为应用程序池“DefaultAppPool”提供服务的进程关闭时间

2010-07-05 10:33 417 查看
最近我们的其中一个分站(暂时叫分站1)出现了间歇式的无法访问,具体表现为:网站一会运行没事,但是过一会就不行了,提示的是504错误;提示此错误时所有的.aspx页面无法打开,就是没有连接数据库的也无法打开,但是.html就没有问题;数据库跟踪时,发现数据库不存在堵塞,需要运行的sql,再数据库上0秒就完成了。出现此问题后,回收一下应用程序池就没有问题了,但是访问一会又就不行了。

环境:
1.win2003,IIS6,ASP.net 2.0,SQL Server2005
2.和这个分站在一起的还有其他分站,他们的web与数据库都同时在一台机器上。程序相同,数据库结构相同。这些分站每一个系统都是一个单独的应用程序池。
3.出现这个问题后,事件查看器中提示的信息是:为应用程序池“DefaultAppPool”提供服务的进程关闭时间超过了限制。

我们测试的情况:
1.拿出现问题的分站1的程序连接数据量最大的一个分站的数据库,没有问题;但是一连接分站1的数据库,就不行。
2.使用分站1的其他系统(使用同一个数据库),没有问题,只有这一个系统运行有问题(系统a)。后来设置站1上系统a使用一个正常的应用程序池,还是不行。(分站的每个系统都是独立的应用程序池)
3.根据事件查看器中的提示,网上说的方法都试了,还是不行(应用程序池的设置以及数据库连接的字符串)。
4.数据库重新换了台机器,程序运行了一天一夜,第二天又出现同样的问题。
5.连接分站1中系统a时,感觉就好像是再独享这个数据库连接。如果机器a可以连接上,登陆后访问数据量比较大的页面,速度是没有问题的;但这是如果机器B连接,可能就会连接不上,就好像一直在等待资源;数据库这时跟踪,显示的机器B也已经连接,数据库且都已经执行完毕;在等待页面的显示。

比较奇怪的是:此分站的程序与其他分站都是一样的,数据库结构也是一样的;即使数据量比他大N倍的分站运行也没有问题,唯独单单这个分站的某一个系统就不行。

咨询了一下微软的专家,人家说是首页在调用数据库时存在等待的情况;后台把首页中调用数据库的地方删除了,现在再运行看看情况(运行了两天了,没有再反映有此问题);感觉好像是没有找到此问题的根上。

出现这个问题,感觉自己都很矛盾。如果是数据库的问题,连接同一个数据库的其他系统就没有问题。如果是程序的问题,连接其他分站的数据库就没有问题;再就是可能是数据库中的数据坏死,但是如果我连接连接上的话,速度还是挺快的。

微软最新答复:

问题还是类似的不过这次在等待的页面是:http://test/aabbcc.aspx?cmdtype=aa&position=bb

0:130> !do 05578f20

Name: System.String

MethodTable: 79330a00

EEClass: 790ed64c

Size: 204(0xcc) bytes

GC Generation: 0

(C:/WINDOWS/assembly/GAC_32/mscorlib/2.0.0.0__b77a5c561934e089/mscorlib.dll)

String: http://test/aabbcc.aspx?cmdtype=aa&position=bb

Fields:

MT Field Offset Type VT Attr Value Name

79332c4c 4000096 4 System.Int32 1 instance 94 m_arrayLength

79332c4c 4000097 8 System.Int32 1 instance 93 m_stringLength

793316e0 4000098 c System.Char 1 instance 68 m_firstChar

79330a00 4000099 10 System.String 0 shared static Empty

>> Domain:Value 000cced0:10cb01d0 0010a140:10cb01d0 <<

79331630 400009a 14 System.Char[] 0 shared static WhitespaceChars

>> Domain:Value 000cced0:10cb0728 0010a140:08cb0be8 <<

从dump里看,aabbcc.aspx已经全部执行完毕了,Default.asxp和Index.aspx都会去同步调用 aabbcc.aspx,而command.aspx会去异步调用其他网络资源比如从SQL中去数据或者从网络读取文件。如果远端资源调用没有返回,就会造成Default.aspx或Index.aspx一直在等待,导致客户端响应很慢。

此问题记录下来,以备将来参考。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐