2014-09-18 208 views
0

我們與IIS 7.5的aspx.net的應用程序和該應用程序正在失去或放棄對無明確原因的會議,我們正面臨一個巨大的問題都App_pool循環設置,即使失去了自定義會話。由於客戶端限制,我們必須使用自定義會話,而不是IIS會話。儘管IIS設置爲FALSE

應用程序池正在使用管道:集成和框架爲4,並且應用程序池中的所有「回收」設置都已設置爲FALSE。

我說的客戶會話是基於微軟在這裏提供的關於如何創建自定義會話的示例創建的.cs類。我們唯一不同於這個Microsoft示例的是我們添加了另一個名爲'Token'的會話變量,並且每次我們需要檢查會話ID時,我們還檢查該令牌是否存在。正如你所看到的是一個簡單驗證的問題..但是再次,似乎IIS正在區分這個令牌會話。

當我們使用Fiddler跟蹤應用程序時,它揭示了令牌ID是空的,但會話ID值仍然存在..所以我沒有任何意義。

如果誰可以給我們的建議和提示也許已經對類似的問題,並告訴我們什麼做的目的是克服我們真的,真的很感激幫助的問題。

請幫

+0

聽起來像你應該使用'HttpContext.Current.Session [「yourSessionObject」]',並在在session_start事件 – MethodMan 2014-09-18 21:27:20

+0

下Global.asax文件初始化它是否有可能,它的回收,由於默認空閒設置?對我來說,令人驚訝的是,應用程序池的高級設置中有更多的回收設置。 http://technet.microsoft.com/nl-nl/library/cc771956(v=ws.10).aspx – Wouter 2014-09-19 17:00:35

回答

0

有幾件事情我會檢查:

  • 您在Windows事件日誌系統下的應用程序池回收(通常是下一個源),因爲它可能是日誌條目應用程序池仍然是回收瞞着你
  • 在Global.asax的Application_Start創建一個公共靜態的DateTime捕獲應用程序池啓動時,寫變量out作爲的Application_BeginRequest事件的標題,以幫助確保應用程序池ISN不回收。有時回收利用是非常透明的,你可能沒有注意到它們。
  • 您可以將會話狀態存儲在其他幾個位置的應用程序池之外,例如: http://msdn.microsoft.com/en-us/library/vstudio/ms178586(v=vs.100).aspx即使Web服務器重新啓動,狀態服務器和SQL Server也會保留數據。
  • 是否有可能會導致會話ID在不應該變更時發生變化?讓它看起來像會話正在丟失?
相關問題