熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

Asp.net的Session過期

2013-11-13 09:56:41  來源: .NET編程 

  目錄刪除及重命名操作

  如果你發現session突然無理由的丟失而當你認真的檢查代碼並且排除其它常規可能丟失的可能性時你可能會像我一樣幾乎要接近崩潰~!

  後來發現問題出在我用代碼創建一個臨時目錄然後刪除臨時目錄的刪除操作上

  現在和大家分享下希望對碰到類似釘子的朋友有用……

  說白了session丟失實質就是應用程序重起!

  應用程序什麼時候自動重起呢?

  請參考Anand在發表的文章

  也就是說 會監視應用程序目錄一但有被監視的動作發生(比如修改了config重命名目錄等)應用程序就會自動重起當然這時你的session一定丟失了

  如果避免不了這種操作(如重命名目錄)這裡我們可以用cookie存信息或存到數據庫去

  注意除了以上列出的英文條件外目錄的刪除操作一定丟失的內部機制對待目錄有點像個守財奴它死守著目錄你創建它不會管(往裡加)一但創建他就會監視該目錄若你要刪除或重命名它的(動它的目錄)它就發生重起了……

  Frame中關於Session丟失

  在開發中我們經常會遇到使用Frame來工作而且有時是為了跟其他網站集成應用到多域的情況下而Iframe是不能保存Session的因此網上可以找到很多相關的文章如果網站可以采用設置WebConfig中的配置<sessionState mode=StateServer stateConnectionString=tcpip= sqlConnectionString=data source=Trusted_Connection=yes cookieless=false timeout= />把cookieless=false改成true就可以了但也同樣有個小問題就是如果頁面中采用Javascript的windowlocation這樣的方式來重定向的話系統會認為這是另一個新的請求產生一個新的SessionId導致原Session同樣的丟失所以對於重定向還是使用ResponseRedirect()為好

  除了Ifrmae有丟Session問題外frameset也有同樣的問題Frameset的問題更不移定是有時會丟有時不會丟這更認人頭痛在網上找到了一個方法在頁面page_onload裡添加一語句ResponseAddHeader(PPCP=CAO PSA OURFrameSet中的Session丟失問題就解決了


From:http://tw.wingwit.com/Article/program/net/201311/12071.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.