在Response.Redirect上捕获错误

问题描述:

我们使用Response.Redirect将用户发送到网站以进行问卷调查。我们有一个数据库,存储关于用户参加调查的资格的信息,如果他们符合条件,他们的主页上会出现一个“Take Survey”按钮,并且一个变量存储调查的URL。在Response.Redirect上捕获错误

TakeSurvey_Click情况下,原来的代码如下:

FormsAuthentication.SignOut(); 
Response.Redirect(TheURL); 

漂亮的直线前进和伟大的工作多年。最近,我们更改了用户被重定向到的网站。成千上万的用户没有问题;然而,对于一个相当重要的群体(2-3%),当他们按下“Take Survey”按钮时没有任何反应。

在搜索互联网之后,我确信我已经尝试了所有推荐的方法来处理这种情况,但没有人真正做到我想要的。我想要发生的是,如果Take Survey不会将用户发送到链接(顺便说一句,我们已经检查了为非工作链接生成的链接,并且它们是很好的链接),我想要一个信息页面显示告诉他们我们遇到了问题,如果他们能够向我们发送关于他们的环境的一些信息,那么在解决问题时会很有用。看起来很简单,但无论我尝试什么,我都无法让页面无法显示,或者,如果我使用覆盖并发送错误,它永远不会显示,也不会重定向。

任何人有任何想法?

Response.Redirect向浏览器发送“302 Moved”响应。浏览器负责导航到目标网址。

因此,一旦您发布了Response.Redirect,就无法检测到浏览器未成功导航到您选择的网址。

现在,有几种不同的方式(即我能想到的就处理这个):

  • 您可能能够设置document.location从客户端JavaScript。
  • 发出重定向的页面可以定期刷新自己(使用JavaScript或meta refresh)。如果它发现自己仍然在同一页面上,那么它可能会发出警告。
  • 或者更简单地说,发布重定向的页面可能只有说明,指示“我们正在向您发送调查报告,如果您在30秒之后仍在查看此消息,则出现问题。” 。