报的错误是"无法使用前导 .. "
接下来就开始想如何可以重现这样的错误了.因为google 和 yahoo到底是什么捉的我们不是很清楚 但是可以看到的是他传递过来的一些参数.
开始模拟他们的一个访问过程.
首先我们需要一个数据的抓包工具..我用的是Wsockexpert (杀毒软件会报毒不传上来了)
用比较原始的TcpClient
从iis的日记..加异常处理哪边我们可以得到一些参数
试了各种组合,我发现了尽然在 user agent 尽然起作用了.引发了这个异常.yahoo 错误 google 错误 baidu ie firefox都是正常的,但是不清楚哪个启了决定性的作用. 没有多大的办法判断是什么原因了.. user agent不添加也是成功的.
没有重写的情况下访问 default.aspx不管是谁的 user agent 都是成功的
我想 iis 处理 aspx这方面肯定是有一个bug了..人家哪样写跟你什么事.. 难道微软的程序员给他们的两个开的一个玩笑
但是我在服务端没有办法捕狱到这个异常. 调试的时候,不会有异常 用 try catch 尝试捕获 url重写 list pageload 不会得到这个异常 只能在 application error哪边得到这个异常用 last error放到日记文件. 最后面直接开把 web.config 的 error off 看到的错误跟日记记录的一样
我的配置
<LookFor>~/list/(\d*?)/(.*?).aspx</LookFor>
<SendTo>~/List.aspx?id=$1&start=$2</SendTo>
你写蜘蛛的时候也应该注意一下了..
附:调制WEB的技巧 iis哪边添加一个新的主机头 localhost ,然后在启动选项哪边 勾选 使用自定义服务器 并输入 http://localhost