2009-03-31 2 views
1

я получаю следующее сообщение об ошибке при попытке использовать Response.Redirect в одном из моих страниц ASP.NET:Bizarre ошибка с 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 

Я никогда не видел этого раньше. Это происходит, если я Response.Redirect во время загрузки страницы.

Любые идеи?

EDIT: Это не мой код. Это происходит, если я должен был просто вставить Response.Redirect самостоятельно в Page_Load.

РЕДАКТИРОВАТЬ # 2: Использование заголовка 302 FOUND отлично работает, но разве это не означает, что response.redirect должен делать так или иначе?

+0

Бросьте часть своего кода, чтобы мы могли получить gander! – madcolor

+0

Произошла ли эта ошибка на исходной или целевой странице? – feihtthief

+0

страница назначения – FlySwat

ответ

1

Это, вероятно, не поможет, но само исключение выбрасывается внутри HttpResponseStream.Write (byte [] buffer, int offset, int count), когда либо смещение < 0 (которое это не так), либо длина буфера равна нулю. Насколько я понимаю, это может произойти, если включен буферизованный вывод и что-то удалось записать нулевые байты в поток.

Я бы попробовал вызвать Flush перед выполнением перенаправления и экспериментировать со вторым параметром. Я также проверил бы web.config для регистрации пользовательских фильтров (маловероятно). Также убедитесь, что целевое приложение не имеет асинхронной обработки страниц, что может привести к хаосу.

По-видимому, другие люди сталкивались с подобной ошибкой, но обычно при создании собственных фильтров. Я бы закончил отладку на уровне ассемблера ...

0

Я бы тщательно просмотрел код целевой страницы (так как вы прокомментируете, что там происходит ошибка). Вероятно, он использует что-то, что зависит от запроса. Я никогда не видел подобной ошибки, но похоже, что вы должны сосредоточиться на каких-либо специальных материалах, которые делает эта страница.

+0

Не имеет значения, какова целевая страница. Я могу указать на любую страницу на сайте ... похоже, что она исходит из самой структуры, просматривающей трассировку стека. – FlySwat

Смежные вопросы