2009-12-02 6 views
-1

En utilisant NhibernateProfiler, nous avons déterminé que nous créons une ISession pour chaque requête http. Cependant les ISessions ne se ferment jamais. Nous pouvons voir dans le journal où localSession.Close() se déclenche. Y at-il quelque chose dans notre fichier de configuration qui empêcherait la fermeture de la session? Existe-t-il d'autres raisons localSession.Close() ne ferme pas physiquement la session? Nous sommes sur 2.1 de NHibernate.Nhibernate Session et 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> 

Merci d'avoir pris le temps de lire ceci.

+0

Dubpliquer de votre question: http://stackoverflow.com/questions/1835244/nhibernate-in-asp-net-isession-help – Paco

+0

Ouais mon patron voulait poser la question d'une manière différente aussi ... Pardon. –

+1

http://en.wikipedia.org/wiki/Pointy-Haired_Boss – Paco

Répondre

0

Disposez-vous l'ISession? Envelopper dans une déclaration using?

+0

en utilisant un httpModule pour le fermer à la fin de la requête oneSession = CurrentSessionContext.Unbind (factoryPerDB [sessionIndex]); oneSession.Flush(); oneSession.Close(); –