问题出处:站点
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>