首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

w3wp占用CPU过高

判定方法: 1 在任务管理器中增加显示 pid 字段。就可以看到占用内存或者 cpu 最高的进程 pid ! 2 在命令提示符下运行 iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到 pid 对应的应用程序池。 3 到 iis 中察看该应用程序池对应的网站就可以了!然后真对站点排除错误!(如果运行后出现 error - no no results 这样的提示,说明你的站点没有开启或还没有被访问过!) 解决方法: 1 尝试删除系统路径\System32\Logfiles\W3SVC1 下当天的错误日志文件,如:ex060904.log,然后重新启动IIS,等待一段时间,看看有没有问题。 注:有时非法重启或者写入日志错误都有可能造成 w3wp.exe 进程锁死。 2 设置应用程序池的CPU监视,不超过25%,每分钟刷新,超过限制时自动关闭。 注:此方法只能用来做为测试,在真正的环境下,这个可能会引起网站时好时坏。不推荐长期使用。 3 检查你的程序代码,或者网页调用,程序没写好或者有死循环,是最容易造成 w3wp.exe 锁死的。 注:方法是先停止IIS,再删除当天的网站日志(系统路径\System32\Logfiles\对应的网站目录下),然后开启IIS,等待CPU高占用的出现,这时在1分钟内打开新建的日志文件,按出现时间,对应检查里面所罗列出现的文件,检查代码是否有问题。 4 检查数据库完整性和 ODBC 的有效性。 注:有些写得不好的 ASP 程序,在访问数据库无法做到容错性,所以有些时候数据库损坏或者 ODBC 传送数据不正常,都有可能造成多次强制查询,从而体现为 w3wp.exe 高 CPU 占用。 5 检查文件的权限。 注:不要奇怪,某些时候真的出现这种事情,一个文件无法写入或者无法读取,都会引起很大的问题。 ---------------------------- 以上才是真正的解决手段和方法,网上流传的资料,不是很让人满意。 就我自己网站来说吧,原因在于 LinPHA 这个相册系统,不知道为什么,这个系统,在收到非标准的搜索 search 代码时,就会出现变量无法赋值的问题。 在调试的时候,我就发现了,Google Bot 在搜索时,能准确的识别出我的语言代码页,搜索所赋值的变量数值合法,所以不出问题。 而遇到 Baidu 蜘蛛时却就有意外发生了,因为 Baidu 本身不认 Unicode 代码,所以他会将你的代码页当成 GBK 来搜索,自然在 Unicode 的搜索页里就出现赋值不是合法数值的问题,然后导致运算出错,最后把w3wp.exe 锁死,等90秒或者更长时间,系统强制回收变量时,才能自动恢复。 这就是前段时间,本站访问不正常的根本原因。

02

关于.NET5在IIS中部署的几个问题总结

本来我的系列教程已经慢慢剥离开IIS了,毕竟有了Docker容器以后,配合Nginx使用真的很不错。但是还是有很多同学使用IIS的,这个不可否认IIS的重要性。随着.NET的发布,很多小伙伴已经开始升级了,我也就陆陆续续收到了一些问题咨询,问题也是说大不大,说小不小,像我这样很久都没有玩儿过IIS的,也就一两个小时就解决了,所以基础知识还是特别重要的。 同时,我也收到了一些质疑的声音: 比如.NET5的镜像有问题? 比如为什么要升级呀,又不是LTS? 鉴于这些问题,我想说和郭德纲老师的水洗煤发射火箭是同一类问题,我不是很懂,也没办法准确回答,具体请百度吧。

02

提示iis 无法启动World Wide Web Publishing服务的解决办法

今天装IIS组件,结果网站和ftp都启动不了,看看服务,World Wide Web Publishing 服务没有启动,FTP Publishing服务也没有启动,于是我手动启动World Wide Web Publishing 服务,郁闷的是,系统提示:无法启动World Wide Web Publishing服务,错误 87 , 参数不正确;启动FTP Publishing服务也出现同样的提示。晕倒,然后打开其属性看看服务依存关系,可是其所依存的服务我已全部开启,还是不行,然后百度谷歌一顿搜,结果搜了半天,按那些解决方法试了都不行,正要绝望之时,突然发现一篇Vinzip blog 文之巴博客的文章,然后按照他的方法弄好之后,重新计算机!YES!OK了,看来还是这个人有水平,文章转贴如下:

00

内部服务器500错误原因解决方法_什么是内部服务器错误

大家好,又见面了,我是你们的朋友全栈君。 http 500内部服务器错误的解决方法 这个错误整整浪费了我下午的时间,在网上有很多的方法,当然我也是从那些繁多的方法中一点点的搞定IIS的,首先你要先装好IIS,XP SP2中的应该是5.1版本的,安装方法: 1->打开控制面板,选择添加删除程序 2->选择添加删除组件,选择Internet信息服务,也就是IIS 3->点击下一步安装就好了 安装好之后也许你的机子会正常的显示http://localhost/的页面,但很遗憾我的无法正常显示,而且是显示HTTP 500 内部服务器错误,当然我相信肯定有很多人遇到这种情况,搜索一下就知道有多少了。 解决方法: 首先我们要在Internet Explore中选择工具->Internet选项->高级->显示友好的HTTP错误信息,把这一项前面的对钩取消。 这样刷新一下http://localhost/这个页面就会显示出详细的出错信息,有可能会有其他原因,现在只说我遇到的,也是大多数人遇到的错误原因,也就是下面的错误: Server Application Error The server has encountered an error while loading an application during the processing of your request. Please refer to the event log for more detail information. Please contact the server administrator for assistance. 至于出错的具体原因,在这里就不多说了,我们只谈论解决的办法,如果你有兴趣去弄明白其原因,你可以参阅网上的其他资料。 解决方案: 1->右击我的电脑->管理->本地用户和组->用户,给IUSR_机器名和IWAM_机器名两个用户设置密码,要一样 2->开始->运行->输入cmd进入控制台 3->在控制台下输入cd c:/Inetpub/AdminScripts 4->输入cscript.exe adsutil.vbs set w3svc/wamuserpass 你的密码 5->输入cscript.exe adsutil.vbs set w3svc/anonymoususerpass 你的密码 注意这时候控制台不要关闭 刷新http://localhost/如果正常显示出两个页面,说明正常,下面的就可以不去做,如果不行就请继续 6->继续在控制台下输入cscript.exe synciwam.vbs -v 7->如果这时候出现8004e00f错误的话跳过步骤8,直接执行步骤9 8->输入iisreset,重启IIS,刷新http://localhost/,正常 9->开始->运行->输入dcomcnfg->进入组件服务->点击右边的组件服务->计算机->我的电脑->COM+应用程序 报错”COM+ 无法与 Microsoft 分布式事务协调程序交谈”,无法查看里面的对象 10->进入事件查看器,发现msdtc服务没有正常启动。 11->开始->运行->输入regedit进入注册表(下面删除的几项最好先导出一下) 12->找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/MSDTC删除 13->找到HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/MSDTC删除 14->找到HKEY_CLASSES_ROOT/CID删除 15->在控制台下继续输入net stop msdtc停止MSDTC服务 16->输入msdtc -uninstall卸载MSDTC服务 17->输入msdtc -install重新安装MSDTC服务 18->确认在事件查看器中msdtc服务已经正常启动 19->如果没有正常工作,请重新执行第17步骤,多执行几次,这样我们可以看到COM+应用程序可以访问,如果不能重启电脑看下,IIS也应该能正常工作,刷新http://localhost/,刷新页面看下是否成功,如果还是不成功的话,就把IIS重新安装一下。 20->问题解决。

01
领券