HTTP headers and Response.Redirect

Discussion in 'ASP .Net' started by Sam, Dec 6, 2003.

  1. Sam

    Sam Guest

    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
    Sam, Dec 6, 2003
    #1
    1. Advertising

  2. Hi Sam,

    The easiest thing to do might be to just call Response.Clear() before you
    call Response.Redirect(). I actually thought this happened automatically,
    but apparently not...

    +++ Rick ---

    --

    Rick Strahl
    West Wind Technologies
    http://www.west-wind.com/
    http://www.west-wind.com/wwHelp
    ----------------------------------
    Making waves on the Web


    "Sam" <> wrote in message
    news:000901c3bba6$5f4db800$...
    > 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
    >
    Rick Strahl [MVP], Dec 6, 2003
    #2
    1. Advertising

  3. Sam

    sam Guest

    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

    >-----Original Message-----
    >Hi Sam,
    >
    >The easiest thing to do might be to just call

    Response.Clear() before you
    >call Response.Redirect(). I actually thought this

    happened automatically,
    >but apparently not...
    >
    >+++ Rick ---
    >
    >--
    >
    >Rick Strahl
    >West Wind Technologies
    >http://www.west-wind.com/
    >http://www.west-wind.com/wwHelp
    >----------------------------------
    >Making waves on the Web
    >
    >
    >"Sam" <> wrote in

    message
    >news:000901c3bba6$5f4db800$...
    >> 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
    >>

    >
    >
    >.
    >
    sam, Dec 6, 2003
    #3
  4. Remember one thing: Redirects don't send any headers, so if you are setting
    cookies (or use a Session object for the first time) the redirect will loose
    the cookie/session/header since it's not being sent.

    +++ Rick ---

    --

    Rick Strahl
    West Wind Technologies
    http://www.west-wind.com/
    http://www.west-wind.com/wwHelp
    ----------------------------------
    Making waves on the Web


    "sam" <> wrote in message
    news:e6ae01c3bc67$56249fc0$...
    > 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
    >
    > >-----Original Message-----
    > >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
    > >----------------------------------
    > >Making waves on the Web
    > >
    > >
    > >"sam" <> wrote in

    > message
    > >news:064801c3bbb9$b5bad4d0$...
    > >> 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
    > >>
    > >> >-----Original Message-----
    > >> >Hi Sam,
    > >> >
    > >> >The easiest thing to do might be to just call
    > >> Response.Clear() before you
    > >> >call Response.Redirect(). I actually thought this
    > >> happened automatically,
    > >> >but apparently not...
    > >> >
    > >> >+++ Rick ---
    > >> >
    > >> >--
    > >> >
    > >> >Rick Strahl
    > >> >West Wind Technologies
    > >> >http://www.west-wind.com/
    > >> >http://www.west-wind.com/wwHelp
    > >> >----------------------------------
    > >> >Making waves on the Web
    > >> >
    > >> >
    > >> >"Sam" <> wrote in
    > >> message
    > >> >news:000901c3bba6$5f4db800$...
    > >> >> 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
    > >> >>
    > >> >
    > >> >
    > >> >.
    > >> >

    > >
    > >
    > >.
    > >
    Rick Strahl [MVP], Dec 8, 2003
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?Y2hzYWtkYQ==?=
    Replies:
    1
    Views:
    772
    Peter Rilling
    Apr 23, 2004
  2. otf
    Replies:
    0
    Views:
    583
  3. Ian
    Replies:
    2
    Views:
    1,931
  4. Sal
    Replies:
    1
    Views:
    400
  5. David Morgan
    Replies:
    1
    Views:
    322
    raj chahal
    Feb 24, 2006
Loading...

Share This Page