代码之家  ›  专栏  ›  技术社区  ›  FlySwat

带有响应的奇异错误。重定向

  •  1
  • FlySwat  · 技术社区  · 17 年前

    尝试使用Response.Redirect时出现以下错误:

    [ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
    Parameter name: offset]
       System.Web.HttpResponseStream.Write(Byte[] buffer, Int32 offset, Int32 count) +8858392
       System.Web.HttpResponseStreamFilterSink.Write(Byte[] buffer, Int32 offset, Int32 count) +30      
       System.Web.HttpWriter.Filter(Boolean finalFiltering) +8754611
       System.Web.HttpResponse.FilterOutput() +82
       System.Web.ApplicationStepManager.ResumeSteps(Exception error) +501
       System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +123
       System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr) +379
    

    我以前从没见过这个。如果我响应,就会发生这种情况。在页面加载事件期间重定向。

    有什么想法吗?

    编辑:这不是我的代码,如果我只是坚持响应的话,就会发生这种情况。在页面加载中自己重定向。

    编辑2:使用302找到的头文件很好,但这不是response.redirect应该做的吗?

    2 回复  |  直到 17 年前
        1
  •  1
  •   Ruslan    17 年前

    这可能没有多大帮助,但当offset<0(不是)或缓冲区长度为零时,异常本身会在httpResponseStream.write(byte[]buffer,int offset,int count)中引发。据我所知,如果启用了缓冲输出,并且某个对象设法将零字节写入流,则可能发生这种情况。

    在进行重定向和第二个参数实验之前,我会尝试调用flush。我还将检查web.config中是否有任何自定义过滤器注册(但不太可能)。还要确保目标应用程序没有异步页处理,这可能会造成严重的破坏。

    显然,其他人也有类似的错误,但通常是在编写自己的过滤器时。最后我会在汇编程序级别调试…

        2
  •  0
  •   eglasius    17 年前

    我会仔细检查目的地页面的代码(因为您在那里评论了错误的发生)。它可能正在使用依赖于请求的东西。我从来没有见过类似的错误,但看起来你应该关注页面正在做的任何特殊的事情。