2010-03-01 42 views
2

我有一個webforms應用程序,它在response.redirect上丟失了它的會話變量我讀過Bertrand Le Roy的blog這個,仍然無法獲得它工作會話變量在response.redirect上清除('page.aspx「,false)

頁面在生產中工作但是,當我在VS2k8 IDE中嘗試時,會話變量在response.redirect之前,在下一頁的第一行,變量是什麼都沒有。已經確認會話ID是相同的,所以我不會跳過會話,目標頁面是相對的,所以Web服務器不認爲我們正在改變網站(如sessionid所確認的那樣)

這裏是我正在使用的線路:

Response.Redirect(「menu.aspx」,False)

想法?

+0

相關:http://stackoverflow.com/questions/2203586/redirect-to-webapp-default-document-when-another-page-is-specified和http://stackoverflow.com/questions/2267818/why -when-session-writes-vulnerable-to-thread-termination – lance 2010-03-01 17:05:27

+0

menu.aspx是否在Page_Init()中包含Session.Abandon()? :) – 2010-03-01 17:06:27

+0

否Session.Abandon() – 2010-03-01 17:09:33

回答

0

在你的問題這條線讓我感到困惑:「目標頁面是相對的,所以Web服務器不認爲我們正在改變網站。」

這兩個頁面(源和目標)在同一個應用程序域中?

您是否正在損失全部會話變量或只是在這一個請求上設置的變量?在前一頁面上設置一些循環,看看是否保存了。

+0

我比較連接。所以,重定向到'menu.aspx'而不是'domain.com \ menu.aspx'。是的,這是同一個應用程序。所有的會話變量都會丟失。我在第一頁上設置了一個變量,將重載的方法重定向爲false,當我在下一頁的頁面加載時檢查會話變量時,該值爲'Nothing'。 – 2010-03-02 04:54:58

+0

在這種情況下,會發生一些非常可怕的事情。你能在最小的測試頁面上重現這一點嗎? – Bryan 2010-03-02 07:13:43