ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常问题解决
ASP.NET中报“无法在已发送HTTP标头之后进行重定向”异常时,其中一个原因是:在已经重定向后又重定向。在ASP.NET中实现重定向有以下几种方式:
(1)设置301、302响应标头;
(2)调用Response.Redirect;
(3)MVC控制器方法返回RedirecResult类的实例。
因为该原因发生异常的情况,一般就是代码不规范,同一执行路径执行了多次重定向。可从如下几方面排查代码去掉重复的重定向操作:
(1)从Global.asax.cs到具体方法的调用链上下文中,是否有重复的重定向;
(2)应用了Filter的方法,是否在方法和Filter中都有重定向;
(3)使用了DelegatingHandler的情况,是否在方法和DelegatingHandler中都有重定向;
(4)使用了HttpModule的情况,是否在方法和HttpModule中都有重定向。