none
在 App_Data 下的檔案受到變更時也會造成 Session 重啟喔... RRS feed

  • 一般討論

  • In: .NetFramework 3.5 + ASP.Net 2.0 + VWD 2008

     

    記得很久以前逛過 這篇討論 ,所以一直以來自己也都很注意「網站目錄下的檔案變更時,即有可能使 Session 重啟」這一點,但我一直都把 [App_Data] 這個目錄排除在外,因為:網站的 App_Data 目錄下原本就有數個資料庫檔案,而它們也常常被更改,一直以來都沒發生過什麼問題。

    隨著網站的開發過程,內容不斷的修改+新增東西,一直都滿順利,直到有一天測試的時候發現 Session 會不時的發生重啟的狀況,而且因為不是100%會發生,是有時候會有時候不會,所以也不知道什麼時候開始的、改了那些東西後開始的,為了這個問題花了我兩天多的時間在除蟲。後來所幸開一個新專案,一個段落一個段落的將原專案慢慢地抄過來,每抄一段就測一遍,終於,抓到蟲了:

    因為某些需求,網站需要一些隨機檔作暫存交換用,而這些隨機檔是被放在 App_Data\tempFile 資料夾下的,把隨機檔的位址換到網站目錄以外的地方就一切正常了!

    奇怪點:
    App_Data 下的東西不是本來就會常常被在變動的嗎,怎麼連它下面的東西變更時也會造成 Session 重啟呢...... 好,就算會,它下面的那些的資料庫檔案們,從頭到尾都存在(現在也還在),它們也很常態的在被增、刪、修,怎麼不會發生 Session 重啟的問題,唯獨我用 IO class 相關的方法去操作的檔案發生變更時,才會引發 Session 重啟,而且不是每次,是有時候會有時候不會。感覺有點靈異 @.@

    ps. 由於此問題本身已解決,因此沒有po成"問題",當作一個經驗與版友們分享~ :)

    • 已編輯 嘉諦 2010年12月19日 下午 12:00 補漏字
    2010年12月19日 上午 11:56

所有回覆

  • Hi, 我測試的結果(ASP.NET 3.5 on IIS7)看起來只有"刪除App_Data下的子目錄"才會造成AppDomain重啟,Session遺失(參考),供您參考。

    2011年2月15日 上午 06:53
  • 我之前的經驗也是目錄異動或更新名字才會。

    因為通常都是偶爾發生 偶爾不發生,所以才整理了這篇文章,供大家參考:[ASP.NET]Session遺失的幾種可能


    常用資源參考:
    小弟的blog: In 91,wiki: my wiki
    2011年2月15日 上午 07:20
    版主
  • Hi, 我測試的結果(ASP.NET 3.5 on IIS7)看起來只有"刪除App_Data下的子目錄"才會造成AppDomain重啟,Session遺失(參考),供您參考。

    我的環境是 ASP.NET 2.0 on IIS 6

    剛剛再測過一遍了,真的是像您說的耶!

    因為我在 App_Data\tempFile\ 下除了隨機檔以外,有時候會有隨機的目錄,然這些目錄是用完即刪的,真的是在它們被刪的時候 Session 就失蹤。

    呀.....過然世上沒有解不開的迷、所有線索都連成一條線了~~ :P

    另,91大大您給的這篇「Session遺失的幾種可能」我先前已拜讀過。 謝謝唷~

    2011年2月17日 下午 05:14
  • 我正式上線的網站都會將 session 存到 StateServer
    demo小鋪 http://demo.tc
    2011年2月18日 上午 01:13
  • 嗯嗯~ 受教了^^ 謝謝~
    2011年2月18日 上午 04:09