HTTP headers and Response.Redirect

  • Thread starter Thread starter Sam
  • Start date Start date
S

Sam

I have some issues with HTTP Headers and I was hoping for
some pointers or references to good articles.

Here is the problem.
I have 6 .aspx pages, each page contains a common .ascx.
This ascx serves two purposes, 1. it contains a tab strip
with response.redirects to navigate to the other pages;
2. I authenticate the user by check to see if a cookie
exists, if it doesn't I redirect to a login screen.

Now recently when the user is redirected I receive error
messages such as "The object was aborted" and "Object
moved to here". From what I have read I am getting these
error messages because I have sent HTTP headers to the
client before I redirect. Apparently response.end raises
an exception, so I added false for the endResponse
property on the response.redirect, but that didn't fix
the problem.

So what actions send HTTP headers? Do any of the
following, which are contained in my pages?
1. Page.DataBind()
2. Context.Response.Cookies("name").Values("val") = ...
3. Page.RegisterClientScriptBlock("...")
4. Session.Item("name") = ...
5. Accessing a web control e.g. txtFirstname.text = "xxx"
(textbox)
6. Third Party server controls. Im using
Coalesys.WebMenu for dropdowns.

Is there a tracing tool to see if headers have been sent?

Any assistance would be greatly appreciated.
Sam
 
Hi Rick,
I tried that but I still randomly get "Object moved to
here". Will I have to set buffering properties for this
to work. IIS has "Enable Buffering" ticked and each .aspx
page has buffer set to true.

Sam
 
So what actions send HTTP headers? Do any of the
following, which are contained in my pages?

Setting Cookies.

--
HTH,
Kevin Spencer
..Net Developer
Microsoft MVP
Big things are made up
of lots of little things.
 
Hi Sam,

I've seen this with other tools and it usually happens when additional
output is sent after the Redirect(). At that point you get very weird
behavior in browsers where sometimes requests redirect as you want them to
and others where the partial page is displayed etc.

Have you tried forcing an explicit Response.End() after the redirect? Again
I'm pretty sure that this is automatically implied by ASP.Net, but it can't
hurt.

Finally the Moved is actually the content message of the redirect page. So
in a way it seems to me that ASP.Net is serving the data correctly, but IE
might misinterpreting it.

One thing that I can think of is a bug in IE that has to do with content
types and headers being cached. For example, if you generate a page that
returns binary content (like a zip file) but can also generate a text
message on an error - if you have an error first and then send the Zip file
IE will try to display the zip file as text because it cahced the content
type header. Maybe something similar is happening here. You might want to
try another browser or check HTTP Headers.

+++ Rick ---

--

Rick Strahl
West Wind Technologies
http://www.west-wind.com/
http://www.west-wind.com/wwHelp
 
Thanks for your advise Rick.
In some situations I am sending content after the
response.redirect. And also I think cookies maybe
upsetting things. I'll refactor and see if it improves.

Thanks again,
Sam
 
Back
Top