IIS站点一段时间后就不能访问,仅能在本机用localhost或在站点上加其他端口才能访问
环境:windows2008 r2 iis 7.5,ms sql2008 r2,两台机器,防火墙开着,有单个站点,一个前台页面,一个后台管理,一个图片
服务开一段时间后就是这样:
80端口 一段时间后一般在1天,就不能访问,仅能在本机用localhoust,在站点上加其他端口(暂时关闭防火墙),别的机器就可以访问。单80端口还是一直不能访问。
iisreset,服务一直处于停止中状态,netstat-aon 有syn状态的连接,有的能关掉,有的关不掉,如果都关掉了,iis就可以重启。否则只能重启机器。
网站流量不是很大
请问谁遇到这样情况,如何解决?
从测试看,通过再添加一个端口,程序还能正常访问,只是默认端口(80)不在响应了,IE提示连接不上。telnet 提示无法链接。
个人估计是你程序里面出现死循环了,可以看看windows日志
站点程序还能正常运行响应
@大尾巴狼: 程序里面有没有多线程,查查是不是出现死锁了?
查看下Windows的事件日志,很可能是你的程序里有太多的异常,甚至是程序死锁,导致程序占用资源太多。
也有可能是你的网站里的SQL数据库连接忘记关闭了。
站点程序还能正常运行响应,通过另外端口号程序还是正常访问的
@大尾巴狼: 那这个情况就可能是端口堵塞的问题了,倒是没有过于深入的研究过。
看一下 C:\Windows\System32\LogFiles\HTTPERR 中的错误日志
下面是出问题时,在服务器(10.18.9.121)上做测试时的记录。站点就在本机。
通过121 IP地址访问80,telnet是连接不上,通过8121可以连接。IE显示连接不上
用localhost,可以正常访问。
2012-05-10 05:41:29 61.170.225.0 1831 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:41:29 61.170.225.0 1828 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:41:29 61.170.225.0 1836 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:41:49 61.170.225.0 1827 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:43:24 222.44.31.152 7309 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:43:24 222.44.31.152 7308 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:43:24 222.44.31.152 7346 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:43:24 222.44.31.152 7352 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:43:24 222.44.31.152 7311 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:43:24 222.44.31.152 7310 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:43:24 222.44.31.152 7350 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:43:24 222.44.31.152 7349 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:43:24 222.44.31.152 7347 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:57:16 ::1%0 54197 ::1%0 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:57:16 ::1%0 54178 ::1%0 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:57:16 ::1%0 54195 ::1%0 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:57:16 ::1%0 54196 ::1%0 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:57:16 ::1%0 54198 ::1%0 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:57:16 ::1%0 54194 ::1%0 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:58:41 ::1%0 54227 ::1%0 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:58:41 ::1%0 54217 ::1%0 80 - - - - - Timer_ConnectionIdle -
2012-05-10 05:58:41 ::1%0 54218 ::1%0 80 - - - - - Timer_ConnectionIdle -
2012-05-10 13:12:09 10.18.9.121 55766 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 13:12:44 10.18.9.121 55863 10.18.9.121 8121 - - - - - Timer_ConnectionIdle -
2012-05-10 13:13:49 10.18.9.121 55942 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 13:13:49 10.18.9.121 55943 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 13:13:49 10.18.9.121 55940 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 13:13:49 10.18.9.121 55941 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 13:13:49 10.18.9.121 55939 10.18.9.121 80 - - - - - Timer_ConnectionIdle -
2012-05-10 13:13:49 ::1%0 55938 ::1%0 8121 - - - - - Timer_ConnectionIdle -
2012-05-10 13:13:49 ::1%0 55892 ::1%0 8121 - - - - - Timer_ConnectionIdle -
2012-05-10 13:13:49 ::1%0 55934 ::1%0 8121 - - - - - Timer_ConnectionIdle -
2012-05-10 13:13:54 ::1%0 55937 ::1%0 8121 - - - - - Timer_ConnectionIdle -
2012-05-10 13:13:59 ::1%0 55935 ::1%0 8121 - - - - - Timer_ConnectionIdle -
2012-05-10 13:13:59 ::1%0 55936 ::1%0 8121 - - - - - Timer_ConnectionIdle -
@大尾巴狼: 在出现问题时,暂时关闭防火墙,然后访问80端口试试
初步怀疑是你的sql连接没有正常关闭,你可以通过在你的sql查询分析器查询 select * from master..sysprocesses ,看看是否已经超出你允许的最大连接池,另外也可以通过perfmon工具添加 .net Data SqlClient 计数器,查看未回收的连接池。祝你好运。