簡體   English   中英

在IIS上發布ASP.NET網站后丟失會話信息

[英]Losing Session information after publishing an ASP.NET Website on IIS

我是ASP.NET 2.0的初學者,對於ASP.NET的專家來說,這聽起來可能是太基礎和愚蠢的問題,但這讓我無法入睡。

基本上,我開發了一個簡單的多語言網站,其中包含母版頁和內容頁,這些內容頁填充在母版頁的內容占位符部分中。 配置為在ASP.NET Development Server 2.0上運行時,該應用程序可以很好地工作。 但是,一旦我將其發布為在IIS Web服務器上運行,它將不再起作用。 :(我從跟蹤中看到,我使用的任何會話變量都沒有存儲並重定向到相關的內容頁面。

盡管顯示了內容,但是我在重定向頁面上做出決定的會話變量值丟失了,並且遇到了異常。

請指導我哪里出錯了,以及發布應用程序的確切過程。

例如:我的首頁有運行類似http://localhost/Onlineupdate/Home.aspx?vers = 1.1&lang = fr-FR的 URL

根據上述URL,我將verslang變量剝離並保存到Session變量中。 但是,將它們放在IIS上時會丟失。

有大約十二種事情可能導致會話數據丟失:

  • IIS重新啟動
  • 應用程序池重新啟動
    • 由於更改了web.config
    • 由於\\ bin目錄中的任何更改
    • 達到內存限制,或導致應用程序池重置的錯誤。
    • 其他幾種可能的原因
  • 您的主機實際上是一個Web場,並且您正在使用進程內內存,除非一台服務器使用SQL Server會話狀態模式,否則它將在一台服務器故障轉移到另一台服務器時引起問題。

由於我們沒有足夠的信息來確切地回答您的特定情況下發生的事情,因此,請您從頭開始閱讀,從這里開始: http : //msdn.microsoft.com/zh-cn/library/ms178581。 ASPX

編輯:我確實找到了此博客文章,可能對您有所幫助: http : //blogs.msdn.com/b/amenon/archive/2007/08/21/troubleshooting-session-loss.aspx


以下內容不一定是答案的一部分,而是添加為對您有所幫助。

如果可行,以我個人的經驗,我們已經成功地通過使用SqlServer會話狀態模式消除了丟失的會話問題。 自從我們實現了這一點以來,我們的會議問題幾乎消失了。

我也發現了主要問題,您應該在使用之前初始化會話,例如:

會話[“ID”] =””;

在那之后一切正常

為了防止這種情況首先發生在web.config中,請將restartOnExternalChanges設置為false。 現在,在web.config中,更改必須手動傳播(這意味着開發人員現在負責構建用於配置更改傳播的機制)。

提示:為此,您可以使用文件監視程序來監聽web.config (或您在Web.app中使用的任何配置 )的更改並將其包裝為可監視的配置,以便您可以在更改配置時重新加載它們。

希望這可以幫助

我在ASP.NET MVC網站上遇到了同樣的問題。 我已經通過下一步解決了:

  1. 打開IIS管理器
  2. 轉到應用程序池
  3. 右鍵單擊與您的網站相關的應用程序池
  4. 點擊“高級設置”
  5. 將“空閑超時(分鍾)”設置為“ 20”
  6. 將“最大工作進程數”設置為“ 1”
  7. 單擊確定關閉窗口

這些步驟解決了我的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM