response.redirect不等待重定向完成

时间:2018-08-23 20:23:03

标签: c# asp.net .net

我有一个小的重定向代码,它将当前请求重定向到一个jsp页面,并且必须等到jsp页面执行后再恢复执行主线程,该主线程将为用户加载一个祝贺页面。

我的代码如下:

private void PostToCallBackPage(String url, String postdata)
{
try
{
    log.Debug(url + "?" + postdata);
    Response.Redirect(url + "?" + postdata);   
}
catch (Exception ex)
{
    log.Error("PostToCallBackPage error: " + ex.Message);
}
log.Debug("end of PostToCallBackPage");
Response.Redirect(ConfigurationSettings.AppSettings["CongratulationPage"] + QueryString);
}

但是,我没有看到重定向到正在发生的祝贺。我在日志中看到clientabortexception。在查看我的代码做错了什么时,我可以获得帮助吗?

1 个答案:

答案 0 :(得分:1)

  

将当前请求重定向到jsp页面,并且必须等到jsp页面执行

不,那不会发生。从服务器的角度来看,重定向是请求的 end -它涉及发送301/302/307 /当前请求的任何响应以及新的url-就是 。服务器无法等待-这个概念实际上不存在。 Http(至少1 ..)是请求-响应协议;客户端发出了一个请求-服务器发送了一个响应。一旦服务器端代码发出了要重定向的信号,则从服务器的角度来看:就这样-没有更多要做。