为什么应用程序池总是崩溃

为什么应用程序池总是崩溃,第1张

这个问题的特征可以用一个字形容:怪。

这个问题的主题:Blog应用程序引起的IIS 6应用程序池崩溃。

问题的主要现象:

当把新版的Blog程序投入到正式运行环境中后,一开始运行正常,过几分钟后,打开页面速度就变得很慢,浏览器一直处于请求状态(浏览器右上角的图标一直在忙碌),却得不到服务器的正常响应,我的理解就是IIS虽然接受了请求,但应用程序池中的程序却不能对请求作出响应,从而让浏览器在苦苦等待。这时,CPU占用却很少,系统事件日志中会出现这样的警告:

A process serving application pool 'AppPool_CNBlogs_New' failed to respond to a ping. The process id was '3844'.

我把这样的现象描述为:应用程序池崩溃。

当应用程序池崩溃时,运行于内核模式的HTTP.SYS会建立一个新的应用程序池进程w3wp.exe 处理新的请求,并回收旧的应用程序池,可新的应用程序池进程运行一会儿又崩溃,IIS又建立新的应用程序池进程,这样反反复复,网站处于一种很不稳定的运行状态。当IIS回收旧的应用程序池时,系统事件日志中还会出现这样的警告:

A process serving application pool 'AppPool_CNBlogs_New' exceeded time limits during shut down. The process id was '2380'.

这个警告是通配符映射应用程序存在的通病,可能是通配符映射这样的方式让IIS无法对应用程序池占用的所有资源进行正常回收。

对于这个问题,大家都知道肯定是程序中的Bug,而关键问题是找出Bug所在,而我七天的努力却一无所获。同样的程序在本机和服务器上测试都很正常,可是一切换到正式运行环境就出问题。新版本中代码改动不少,但我把主要的改动恢复了也不能解决问题,几天来在代码苦苦寻找Bug的线索也没有收获,也许是很小的代码问题引起的,但我就是找不到。如果没有一定的线索,即使将所有代码检查一遍,也不一定能找到Bug所在。

是将一个或多个应用程序链接到一个或多个工作进程集合的配置。根据查询应用程序池相关资料得知,应用程序池的作用是将一个或多个应用程序链接到一个或多个工作进程集合的配置。通过创建新的应用程序池以及为其指派网站和应用程序,可以使服务器更加有效、可靠,同时也可以让其他应用程序一直保持可用状态。

1、网络配置问题:在重启服务器后,会出现网络配置问题,导致网站无法访问。可以检查网络配置是否正确,包括IP地址、子网掩码、网关等是否设置正确。

2、IIS服务未启动:如果IIS服务未启动,网站就无法被访问。可以打开“服务管理器”,检查IIS服务是否已启动,如果未启动,可以手动启动该服务。

3、端口被占用:如果网站使用的端口被占用,也会导致网站无法访问。可以使用“netstat”命令查看当前端口的使用情况,并关闭占用该端口的程序或服务。

4、应用程序池问题:如果应用程序池未启动或已停止,也会导致网站无法访问。可以打开IIS管理器,检查应用程序池的状态,如果未启动,可以手动启动应用程序池。

5、防火墙设置问题:如果防火墙设置不正确,会阻止网站的访问。可以检查防火墙设置,确保允许网站端口的访问。

6、DNS解析问题:如果网站域名无法解析,也会导致网站无法访问。可以检查DNS设置,确保域名解析正确。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7908858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存