最近在工作中我们遇到了一个小问题,就是IIS总是挂掉。在单独为站点设置了应用程序池后还是解决不了问题。于是就查看系统日志,我们一个个的来说是如何解决的吧。
1、系统日志里有MySQL:‘–default-character-set’isdeprecated警告
windows下安装mysql5.1后在事件查看器里有如下错误信息
‘–default-character-set’isdeprecatedandwillberemovedinafuturerelease.Pleaseuse‘–character-set-server’instead.
这句话的意思是”default-character-set”在未来版本里将不再使用,而是使用”character-set-server’”来替代,根据提示,我们在my.ini里修改信息,
把两处default-character-set全部替换为character-set-server,这样就不会有错误提示了,成功解决。
2、IIS假死的问题分析
今日,更新了webservices程序后,一分钟内,突然发现网站不能访问了,当时给急得真是。。。。
发现是服务器的问题,逐重启了IIS服务,网站好了,可过了一分钟,又挂了。
立马把程序文件全部还原回去,网站一切正常,运行了好一会儿都正常;再把新的程序放上去,IIS立马又死掉。
查看系统日志,报的W3C一大堆,
事件类型:警告
事件来源:W3SVC
事件种类:无
事件ID:1011
日期:2012-6-3
事件:14:21:53
用户:N/A
计算机:WEB-HP
描述:
为应用程序池'webservices'提供服务的进程在与WorldWideWebPublishing服务通信时遇到致命错误。进程ID为'4528'。数据字段包含错误号。
有关更多信息,请参阅在http://go.microsoft.com/fwlink/events.asp的帮助和支持中心。
数据:
0000:6d000780m..�
看到这个日志,刚开始还以为是执行数据库SQL语句相关的程序有问题,因为错误描述中有“数据字段包含错误号”嘛,又逐一检查数据存储层的代码,但仔细一想,本次升了修改也没有修改任何与数据库交互相关的代码呀。。。
又在网上baidu了好大了会儿,按网上说的,把进程池中的“启用快速失败保护”功能给关掉,虽然网站不会自动挂掉,但几乎一秒钟一个黄色感叹号日志,看得那是心惊的,如下
事件类型:警告
事件来源:W3SVC
事件种类:无
事件ID:1009
日期:2012-6-3
事件:19:12:13
用户:N/A
计算机:WEB-HP
描述:
为应用程序池'webservices'提供服务的进程意外终止。进程ID是'1860'。进程退出代码是'0x800703e9'。
有关更多信息,请参阅在http://go.microsoft.com/fwlink/events.asp的帮助和支持中心。
发现关了进程池中的“启用快速失败保护”功能,虽然IIS不自动挂掉了,但错误还是在的。
此时,静下心来想,肯定是程序的问题,因为原来的程序放上去,没有任何错误日志,新的程序放上去,就有错误。
逐一一检查修改过的代码,发现有一个类的属性不对,如下
[csharp]viewplaincopyprint?
publicstringiu_doornumber
{
get{return_iu_doornumber;}
set{iu_doornumber=value;}
}
publicstringiu_doornumber
{
get{return_iu_doornumber;}
set{iu_doornumber=value;}
}
亲们,你们看出来问题所在了吗?
再不修正这个问题的时候,再此编译,发现虽然给出了警告,但依然还是正确编译,发狠心,逐一把编译器给出的所有警告都一一修复后,重新编译,上传程序,OK,一切顺利。
现在平时都是用代码生成器自动生成这种代码,突然要改造,用手工修改的时候,一不小心还真容易出错,并且还不易发现。
另外,实在解决不了,还有2种治标不治本的方法:
1、安装定时重新启动服务器的小工具;
2、安装IIS保护工具;