HTTP重定向302

8

我正在尝试进行HTTP 302重定向,但在调试模式下运行时出现以下异常。

Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack

var response = HttpContext.Current.Response; 
response.Clear(); 
response.Status = "302 Found";
response.AddHeader("Location", "http://google.com"); 
response.End();
response.Flush();

长话短说,这个调用没有刷新响应并且没有重定向。
我该如何使其工作?

你是在调试模式下编译并运行应用程序,还是在发布模式下编译应用程序,并将调试器附加到进程中? - Icarus
请看这里:http://automagical.rationalmind.net/2010/03/08/response-redirect-and-302-and-301-status-codes/ - NoWar
2个回答

9

这是302重定向吗?对我有用,但我不确定是否为302。 - DarthVader

6
HttpResponse对象有一个执行302重定向的方法。
Response.Redirect("page.aspx") 

尽管这是一种常见的实现301重定向的方法,但您的代码应该可以正常工作。

请注意,response.Flush()是多余的,因为响应缓冲区已经刷新到客户端,并且执行将在response.End()上结束,所以那行不会被执行。

在谷歌上搜索其他人遇到的类似问题指向了这篇KB文章http://support.microsoft.com/kb/312629/EN-US/,这可能是您问题的原因。


这是302重定向吗?那对我有用,但我不确定那是302。 - DarthVader
是的,根据文档,你可以使用类似Firebug或Fiddler的工具进行检查。 - Chris Diver

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接