大雪满弓刀

塞下曲

搜索引擎的BOT引发的IIS Crash问题。

问题出处:站点 www.114study.com 的系统日志里经常记录如下的错误:

 

在仔细检查了页面的链接地址和所有相关的文件里的地址后,没有任何地方使用了类似".."这样的符号表示路径.

而且这样的问题发生的频率非常频繁,大部分都在5分钟内发生若干次,直接的后果就是经常引发IIS的进程回收,使站点的访问异常缓慢。

在尝试提高快速失败保护的失败数后,仍然无法完全解决这个问题。于是开始仔细研究引发问题的IP地址,发现基本上都是来自于搜索引擎的BOT...

在经过了搜索之后,于地址 http://todotnet.com/archive/2006/07/01/7472.aspx 发现了答案。

详细阐述如下:

1.该问题出现在使用了UrlRewriter的ASP.NET 2.0站点.服务器端软件环境为

.net Framework 3.5 | IIS6.0 | Windows Server 2003 Enterprise Edition + SP2

2.问题发生的原因:GoogleBot 以及各大搜索引擎厂商的BOT使用的UserAgent发生了变化

GoogleBot的最新版本为:Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

按照文章里阐述的原因,就是这里的Mozilla/5.0引发了使用了UrlRewriter的错误.

3.解决方案: 在使用了UrlRewriter的站点的根目录下添加如下文件夹 App_Browsers

在文件夹里增加如下的文件

 

 

 重点是修改这个 <userAgent match="Googlebot" />
这里出现的match最好是每一个 BOT 的标志性名称。

当你在站点下存放了这些文件后,类似的错误就将不再出现。

举GoogleBot.Browser为例:

<browsers>
  <browser id="Googlebot" parentID="Mozilla">
    <identification>
      <userAgent match="Googlebot" />
    </identification>
    <capabilities>
      <capability name="browser" value="Googlebot/2.1" />
      <capability name="Version" value="4.0" />
      <capability name="MajorVersion" value="4" />
      <capability name="MinorVersionString" value="" />
      <capability name="MinorVersion" value=".0" />
      <capability name="activexcontrols" value="true" />
      <capability name="backgroundsounds" value="true" />
      <capability name="cookies" value="true" />
      <capability name="css1" value="true" />
      <capability name="css2" value="true" />
      <capability name="ecmascriptversion" value="1.2" />
      <capability name="frames" value="true" />
      <capability name="javaapplets" value="true" />
      <capability name="javascript" value="true" />
      <capability name="jscriptversion" value="5.0" />
      <capability name="supportsCallback" value="true" />
      <capability name="supportsFileUpload" value="true" />
      <capability name="supportsMultilineTextBoxDisplay" value="true" />
      <capability name="supportsMaintainScrollPositionOnPostback" value="true" />
      <capability name="supportsVCard" value="true" />
      <capability name="supportsXmlHttp" value="true" />
      <capability name="tables" value="true" />
      <capability name="vbscript" value="true" />
      <capability name="w3cdomversion" value="1.0" />
      <capability name="xml" value="true" />
      <capability name="tagwriter" value="System.Web.UI.HtmlTextWriter" />
    </capabilities>
  </browser>
</browsers>

阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭