我們使用Spring.NET作爲依賴注入和NHibernate作爲ORM。我們使用會話每請求模型,並使用Spring.NET創建會話。在其中一個頁面中,有一個web服務調用。當Web服務調用拋出EndPointNotFoundException異常時,NH會話關閉,我們得到'懶惰初始化異常:'未能懶惰地初始化一個角色集合:,沒有會話或會話被關閉(我們有一個Person對象,頁面加載,但Person對象具有一組延遲加載的集合,如地址等,當訪問其中一個延遲加載的集合時,引發錯誤)。如果不引發異常,則一切正常。有沒有快速的解決方案?需要當EndPointNotFoundException拋出WCF調用異常時,NHibernate會話(Session Per Request)會關閉,如何解決這個問題?
1
A
回答
0
更多的信息,但我會盡力做一個計算的猜測:
拋出的異常沒有被處理,或者如果處理重新拋出。 異常傳播到頁面錯誤處理程序。
無論是沿例外泡沫管道的異常處理函數調用ISession.Close()
,然後消耗異常(並因此執行程序通過頁面的渲染繼續)路某處
這種情況並不少見,通常這樣做:在回退時建議交易也關閉ISession
。
請注意,可能會對失敗的提交執行回滾+關閉,在這種情況下,失敗的Web服務調用會以某種方式污染對象狀態,從而導致提交失敗。異常處理和消耗。
細節問題的細節是,包含代理的NHibernate的實體還存在一些代碼路徑得到執行,並試圖引用關閉ISession
相關問題
- 1. 如何在南希處理NHibernate會話以獲取session-per-request?
- 2. WCF,NHibernate和Ninject的session-per-request實現
- 3. nHibernate Session-Per-Request在會話結束前刪除並提交
- 4. 如何解決異常org.hibernate.SessionException:會話已關閉
- 5. 爲什麼當InstanceContextMode = Per Call時WCF服務不會自動關閉會話?
- 6. 當我的Web服務關閉時,Nusoap不會拋出異常!
- 7. WCF與MSMQ DTC - 關閉NHibernate會話
- 8. FloatBuffer拋出異常?我怎樣才能解決這個問題?
- 9. 哪些異常會導致關閉Nhibernate會話?
- 10. 一個WCF會話可能在另一個會話中拋出異常嗎?
- 11. HttpClient:服務器關閉時會拋出哪個異常
- 12. NHibernate拋出異常
- 13. 不調用NHibernate會話關閉
- 14. Nhibernate Session關閉異常問題與Asp.net mvc telerik ajax網格
- 15. 獲取「會話關閉」異常有時
- 16. 當用戶會話過期或返回空時拋出異常
- 17. 我無法解決這個會話相關的問題!
- 18. 如何解決這個關於空指針異常的問題
- 19. NHibernate會話意外關閉
- 20. 「會話已關閉!」 - NHibernate
- 21. 輸出緩存執行導致會話中的對象引用異常。如何解決這個問題?
- 22. 如何解決ASP.NET,VB.NET中的這個會話問題?
- 23. PHP cURL不存儲會話cookie ...如何解決這個問題?
- 24. ShowDialog和Show有時會拋出異常動畫關閉窗口
- 25. PipedReader.ready()在寫入程序已關閉時不會拋出異常
- 26. 如何解決會話過期問題
- 27. 它如何工作Session Per Request模式?
- 28. 如何在VS2010中的調試會話期間拋出異常
- 29. truezip問題 - 當調試時,拋出一個奇怪的異常
- 30. 方法調用不會拋出異常
爲什麼NH會議上得到的web服務錯誤關閉? –
:)這就是我想弄明白的。一旦引發異常,我會收到錯誤'沒有會話或會話已關閉'。 – RAM
快速解決方案是「不要從視圖中查詢」並在您的數據庫層中加載所需的對象。 http://nhprof.com/learn/alerts/QueriesFromViews – Andreas