1. 如果您的操作系统是windows server 2003的话,请根据以下网站的信息获取hotfix。由于hotfix并不能在网站中直接下载,您也可以拨打微软为合作伙伴提供的8008203800技术支持专线获得。
An access violation error may occur in the W3wp.exe process after you install hotfix 908521 in Windows Server 2003 with Service Pack 1
http://support.microsoft.com/kb/917781/en-us
2. 如果问题依然存在,建议您先执行以下操作进行排错:
(1). 请暂时卸载最近安装的第三方软件,查看问题是否依然存在。
(2). 建议您尝试一次Clean Boot:
a. 运行MSCONFIG
b. 在常规下选择 选择性启动
c. 然后清除Process System.ini File, Process Win.ini File和Load Startup Items 的复选框,但是保留使用原始Boot.ini。
d. 在服务下,先点隐藏所有windows 服务,然后选择 disable all.
e. 然后重新启动。观察问题是否依旧发生。
文献二:
最近看到不少朋友主机出现【外部对象中发生了可捕获的错误(C0000005)】应大家的要求给出处理方法!
Active Server Pages 错误 'ASP 0115'
意外错误
/v/index.asp
外部对象中发生了可捕获的错误(C0000005)。脚本无法继续执行。
Active Server Pages 错误 'ASP 0240'
脚本引擎异常
/v/index.asp
ScriptEngine 产生了异常 'C0000005'(错误位于 'IActiveScript::Close()' 中,来自 'CActiveScriptEngine::FinalRelease()')。
这个错误目前已知的原因有2方面!
1.VBScript和MDAC本身错误造成解析不稳定!
2.ACCESS引发的错误!
对于ACCESS数据库,当数据库的大小超过50M的时候,access的性能会急剧下降!会不稳定有可能并发出现其他错误!
如果是你数据库过大,那么处理办法也很简单!删除没用的数据,网站做精,不在于数量,严格控制数据库的大小!不过都不是长久的处理办法,要想安枕无忧,最好的办法就是升级数据库到sql2000以上版本!这才能彻底解决问题!
如果是因为VBScript和MDAC本身错误就需要IDC协助操作了!
1、从别的电脑上(同系统)拷贝Vbscript.dll,覆盖前请备份!
2、确认你的系统非精简ghost版本的系统【ghost有可能缺少文件】重装IIS服务
3、更新ScriptEn.exe和madc!
1,主板信息.查看主板的序列号
#使用命令
dmidecode | grep -i 'serial number'
#查看板卡信息
cat /proc/pci
2,cpu信息
#通过/proc文件系统
1) cat /proc/cpuinfo
#通过查看开机信息
2) dmesg | grep -i 'cpu'
#
3)dmidecode -t processor
3,在linux系统中查看硬盘信息,常用的命令为fdisk,df,du,hdparm,dmesg。
#查看分区情况
fdisk -l
#查看大小情况
df -h
#查看使用情况
du -h
#
hdparm -I /dev/sda
#
dmesg | grep sda
4,内存信息
1) cat /proc/meminfo
2) dmesg | grep mem
3) free -m
4) vmstat
5) dmidecode | grep -i mem
5,网卡信息
1) dmesg | grep -i 'eth'
2) cat /etc/sysconfig/hwconf | grep -i eth
3) lspci | grep -i 'eth'
6,鼠标键盘和USB信息
查看键盘和鼠标:cat /proc/bus/input/devices
查看USB设备:cat /proc/bus/usb/devices
查看各设备的中断请求(IRQ):cat /proc/interrupts
7,显卡信息
1)lspci |grep -i 'VGA'
2)dmesg | grep -i 'VGA'
8,声卡信息
1)lspci |grep -i 'VGA'
2)dmesg | grep -i 'VGA'
9,其他命令
.用硬件检测程序kuduz探测新硬件:service kudzu start ( or restart)
.dmesg (查看所有启动时检测到的硬件信息)
.lspci (显示外设信息,如usb,网卡等信息)
.cat /etc/sysconfig/hwconf
.mpstat
10,需要手动安装的工具
lshw,hwinfo,hal-device-manager
TIME_WAIT状态的意义:
客户端与服务器端建立TCP/IP连接后关闭SOCKET后,服务器端连接的端口状态为TIME_WAIT
是不是所有执行主动关闭的socket都会进入TIME_WAIT状态呢?
有没有什么情况使主动关闭的socket直接进入CLOSED状态呢?
主动关闭的一方在发送最后一个 ack 后就会进入 TIME_WAIT 状态 停留2MSL(max segment lifetime)时间,这个是TCP/IP必不可少的,也就是“解决”不了的。
也就是TCP/IP设计者本来是这么设计的。
主要有两个原因
1。防止上一次连接中的包,迷路后重新出现,影响新连接(经过2MSL,上一次连接中所有的重复包都会消失)
2。可靠的关闭TCP连接
在主动关闭方发送的最后一个 ack(fin) ,有可能丢失,这时被动方会重新发fin, 如果这时主动方处于 CLOSED 状态 ,就会响应 rst 而不是 ack。所以主动方要处于 TIME_WAIT 状态,而不能是 CLOSED 。
TIME_WAIT 并不会占用很大资源的,除非受到攻击。
在Squid服务器中可输入如下命令:
#netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LAST_ACK 14
SYN_RECV 348
ESTABLISHED 70
FIN_WAIT1 229
FIN_WAIT2 30
CLOSING 33
TIME_WAIT 18122
状态:描述
CLOSED:无连接是活动的或正在进行
LISTEN:服务器在等待进入呼叫
SYN_RECV:一个连接请求已经到达,等待确认
SYN_SENT:应用已经开始,打开一个连接
ESTABLISHED:正常数据传输状态
FIN_WAIT1:应用说它已经完成
FIN_WAIT2:另一边已同意释放
ITMED_WAIT:等待所有分组死掉
CLOSING:两边同时尝试关闭
TIME_WAIT:另一边已初始化一个释放
LAST_ACK:等待所有分组死掉
也就是说,这条命令可以把当前linux服务器的网络连接状态分类汇总。
下面解释一下为啥要这样写:
一个简单的管道符连接了netstat和awk命令。
先来看看netstat:
netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 123.123.123.123:80 234.234.234.234:12345 TIME_WAIT
你实际执行这条命令的时候,可能会得到成千上万条类似上面的记录,不过我们就拿其中的一条就足够了。
再来看看awk:
/^tcp/
滤出tcp开头的记录,屏蔽udp, socket等无关记录。
state[]
相当于定义了一个名叫state的数组
NF
表示记录的字段数,如上所示的记录,NF等于6
$NF
表示某个字段的值,如上所示的记录,$NF也就是$6,表示第6个字段的值,也就是TIME_WAIT
state[$NF]
表示数组元素的值,如上所示的记录,就是state[TIME_WAIT]状态的连接数
++state[$NF]
表示把某个数加一,如上所示的记录,就是把state[TIME_WAIT]状态的连接数加一
END
表示在最后阶段要执行的命令
for(key in state)
遍历数组
print key,”\t”,state[key]
打印数组的键和值,中间用\t制表符分割,美化一下。
如发现系统存在大量TIME_WAIT状态的连接,通过调整内核参数解决,
vim /etc/sysctl.conf
编辑文件,加入以下内容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后执行 /sbin/sysctl -p 让参数生效。
Linux下高并发的Squid服务器,TCP TIME_WAIT套接字数量经常达到两、三万,服务器很容易被拖死。通过修改Linux内核参数,可以减少Squid服务器的TIME_WAIT套接字数量。
vi /etc/sysctl.conf
增加以下几行:引用
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
说明:
net.ipv4.tcp_syncookies = 1 表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout = 30 表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。
net.ipv4.tcp_keepalive_time = 1200 表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 1024 65000 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 5000表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息。默认为 180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于Squid,效 果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。
执行以下命令使配置生效:
/sbin/sysctl -p