2009-12-02 120 views
-1

使用NhibernateProfiler,我們確定我們正在爲每個http請求創建一個ISession。然而,這些東西永遠不會關閉。我們可以在日誌中看到localSession.Close()觸發的地方。在我們的配置文件中是否有會導致會話永不關閉的東西?是否有任何其他原因localSession.Close()不會物理關閉會話?我們在NHibernate 2.1上。Nhibernate會話和ASP.NET

<?xml version="1.0" encoding="utf-8" ?> 
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
    <property name="connection.provider">JCDCHelper.DAL.Utilities.JCDCConnectionProvider, JCDCHelper.DAL</property> 
    <property name="dialect">NHibernate.Dialect.Sybase</property> 
    <property name="connection.release_mode">on_close</property> 
    <property name="show_sql">true</property> 
    <property name="connection.driver_class">JCDCHelper.DAL.Utilities.DataDirectSybaseDriver, JCDCHelper.DAL</property> 
    <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property> 
    <property name="connection.connection_string_name">ProdSybase</property> 
    <property name="current_session_context_class">web</property> 
    </session-factory> 
    </hibernate-configuration> 

感謝您花時間閱讀本文。

+0

對你的問題進行復制:http://stackoverflow.com/questions/1835244/nhibernate-in-asp-net-isession-help – Paco 2009-12-02 20:58:11

+0

是的,我的老闆想以另一種方式提出問題......抱歉。 – 2009-12-02 21:15:15

+1

http://en.wikipedia.org/wiki/Pointy-Haired_Boss – Paco 2009-12-02 23:57:18

回答

0

你正在處理ISession?用使用語句包裝它?

+0

使用httpModule在請求結束時關閉它 oneSession = CurrentSessionContext.Unbind(factoryPerDB [sessionIndex]); oneSession.Flush(); oneSession.Flush(); oneSession.Close(); – 2009-12-02 20:57:19