2011-11-04 104 views
1

我有一个使用Google Page Speed Online出现的问题,虽然我担心可能会有更大的图片。我通过在线工具运行我的网站,在这里查看结果:https://developers.google.com/pagespeed/#url=www.exclaimer.com&mobile=false。请注意,它声称重定向的发生http://www.exclaimer.com/oops.aspx?aspxerrorpath=/default.aspx/default.aspx找不到

现在我在http://www.exclaimer.comhttp://www.exclaimer.com/default.aspx插入原始URL都工作在浏览器中找到。我保留了没有找到的任何页面的日志,并且实际上/default.aspx存在超过一千次(仅在24小时前发生了更改)。这并不是我试图使用Page Speed在线工具1000次,所以我担心这可能是另一个失败的Google服务(或其他自动化系统)。没有任何来自网站访问者的投诉无法访问,这让我相信对普通用户来说没有问题,这个问题只来自于自动化机器人或类似的问题。

我想我的问题是,有谁知道我可以隔离问题的来源的方式吗?我试图修改我的404日志记录代码来捕获/default.aspx被访问的页面,但没有多少运气,因为Url Referrer只能在相当特定的条件下工作。

更新

我已经修改我的密码登录错误的详细信息,但没有被通过过去了/default.aspx。

Exception error = Server.GetLastError(); 
string errorTitle = ""; 
string errorDetails = ""; 
if (error != null) 
{ 
    errorTitle = error.InnerException.Message; 
    errorDetails = error.ToString(); 
}    
Server.ClearError(); 

... send to database 

回答

1

如果页面被重定向到错误页面,则必须存在时,该页面被访问,所以你要做的就是尽量捕捉错误是找到你的代码的哪一部分什么什么错误发生的历史正在引起你的问题。

我的猜测是,问题是你正在假设从客户端发送一个特定的http头,你没有对它进行空检查。当你收到一个机器人的请求时,你可能不会发送被接受的语言或其他东西,那么你就会崩溃。

在你的全局错误处理程序中,你应该记录在数据库中抛出的任何异常,或者直接将其抛入文件。这是非常有用的信息,应该在网站发生任何其他错误并追踪其原因时收集。

+0

我试图修改脚本,如您所说,请查看我的代码问题。 – Chris

+0

也许那时错误就已经消失了。尝试将您的检查代码放入您的global.asax文件中的Application_Error事件处理程序中。 – Chris

+0

你到头来完全正确。我花了整整一天的时间和很多的压力来发现,但到最后。事实证明,如果用户浏览器语言被设置为特定值,那么这是一些重定向到外部网站的代码。我没有首先检查语言[]数组是否实际上有任何值(而且这就是为什么它打破僵尸)。非常感谢! – Chris