我负责维护的一台服务器上一个网站最近经常出现进程池出错终止的故障,报“Service Unavailable”错误,查事件日志为:
为应用程序池 'XXX' 提供服务的进程意外终止
为应用程序池 'XXX' 提供服务的进程在与 World Wide Web Publishing 服务通信时遇到致命错误。进程 ID 为 '196'。数据字段包含错误号。
应用程序池 'XXX' 被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误
既然Timer_ConnectionIdle表明出错前服务器存在大量活动的IIS连接,那就有必要检查IIS日志,经查,IIS日志中存在大量的c-ip cs(User-Agent)为
202.104.150.77 sawsi(+http://www.sawsi.com/)
是什么东西?在28万条的日志访问记录中,居然占5万之多,访问之频繁令我咂舌。经查,http://www.sawsi.com/
是一个视频引擎,所做的工作就是把土豆啊,优酷,56等站的东西搜到它的数据库,然后用框架的形式作为自己网站的内容。http://www.sawsi.com/
这个傻逼网站就是因此派出自己的蜘蛛一天不到在我维护的那台服务器的一个网站上巡回了5万次之多。
以前见过有人骂百度的蜘蛛的,但那至少是有意义的蜘蛛,这个傻逼网站的蜘蛛简直就是不可理喻,我网站上一没有视频,二没有图片,你丫天天跑来干什么?
造成Timer_ConnectionIdle错误的原因除了这个傻逼蜘蛛的因素外,还有一个原因是当初这个网站设计的时候数据库连接没有及时关闭,以及使用404文件生成静态页的结构。那么解决方法自然是偱因施治了。除了屏蔽掉蜘蛛的访问、及时关闭数据库连接外,还可以把服务器IIS连接超时改短,这样IIS可以及时关闭连接,减少服务器负荷。而改长也可以,设置连接超时为600秒,把MinFileBytesPerSec的设置从240修改到0(相当于关掉该设置)。
分类:
Asp.NET开发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?