2011-05-06 56 views
0

我正在使用HttpModule來打開跨越每個請求的會話,並且它與延遲加載和所有內容一起工作良好。Nhibernate與Asp.net WebForms - 每個請求的會話

我擔心的是,因爲我爲每個請求打開一個新會話(並將其存儲在HttpContext.Current.Items中),它會爲每個請求打開會話,甚至包括請求.css文件和圖像。 我記得讀到會話創建是一個非常輕巧的操作(雖然不知道事務),但無論如何,似乎沒有必要打開一個.css文件請求的會話?

任何人都有這方面的想法,這是一個問題和/或我在做什麼愚蠢的?

在此先感謝

+0

你的意思是HttpModule,而不是HttpHandler吧? – 2011-05-06 11:10:40

+0

你是正確的,答案現在被編輯。謝謝 – jmw 2011-05-09 12:28:20

回答

8
  • 僅當文件類型的.aspx或.ashx的創建會話對象:

    switch (context.Request.CurrentExecutionFilePathExtension.ToLower()) 
        { 
         case ".aspx": 
         case ".ashx": 
          context.Items[ContextKey] = CreateMySession(); 
          break; 
        } 
    
  • 或封裝屬性getter中會話創建和潔淨up檢查是否session != null

+0

謝謝將它添加到我的處理程序,它似乎工作。 – jmw 2011-05-06 10:30:59

+0

爲每個請求(每個aspx/ashx)開始一個Nhib交易有多昂貴?我是否可以爲每個請求提供事務處理,還是應該在需要時明確打開它們? – jmw 2011-05-08 18:11:43

相關問題