当前位置首页 > IIS知识

WindowsServer2003IIS出现莫名错误及解决方法

阅读次数:231 次  来源:admin  发布时间:

如果你的服务器一天只有千来人访问,你是很难发现这个错误信息的,但如果你的网站每天有上十万人访问,高峰期并发线程上百个的时候,你会发现一大堆问题便出现了(对于用ASP或ASP.NET的站点,纯静态的不会有这个问题)。

首先,可能网站会突然出现 Service Unavailable (对于用特定和ISAPI或自己编写的COM组件,可能出现会更容易),造成这种原因的,一般是由于ISAPI运行的错误太多,服务器拒绝服务造成的,在IIS5中,把应用程序保护权限设置为低,则可以解决这个问题,但在IIS6中,并没有这个选项,替代之的是应用程序连接池,如下图所示,问题的根源是红圈的地方:

在默认的情况下,只要五分钟内,发现ISAPI出现了5次错误,IIS就会开始发神经,因此,对于自己编写的COM组件或外部的ISAPI,如PHP在ISAPI形式下运行,应该把失败数设置大一些,如设置为:1000,这样就可以避免某部份出错,导致整个服务器无法使用。

对于有多个站点的服务器,应该把每个站点的应用程序连接池分开,方法如下图:

对于访问量大的站点,还要弄一弄下面的这个东西:

WEB园,实际是就是ISAPI的容器,即:w3wp.exe 这个进程,这里建议设置3-8个,看服务器性能而定,对于数据和网站分离的站点更加需要启用多个这种东西,这样有几个好处:

1、如果网站的脚本或ISAPI发生错误,不会让网站停止下来,而是继继使用其它进程,并给足够的时间开新进程;

2、如果有很多需要等待的连接,如:连接数据库,使用远程资源等,可以保留更多连接的队列,如保证网站的运行速度。

此外,有两点是必须必须注意的:对于有多个站点的IIS,尽量用多个连接池,不要全得塞在一块;对于开启了WEB园的情况,请不要用传统的session,应该用 ASP.NET State Service 或数据库来保留 Session信息,否则你可能会不断的看到session过期。 (注:要启动Asp.NET State Service服务.)

上一篇:ApacheCommons常用工具类整理
下一篇:安装Debian后做的一些事情