我的代码如下:
//=====================================================
1 Configuration cfg = new Configuration();
2
3 cfg.AddXmlFile(@"E:\Project\MyProgram\Test\Table1.hbm.xml");
4 cfg.AddAssembly("MyProgram");
5
6 NHibernate.ISessionFactory factory = cfg.BuildSessionFactory();
7 NHibernate.ISession session = factory.OpenSession();
8 NHibernate.ITransaction transaction = session.BeginTransaction();
9
10 Table1 t = (Table1)session.Load(typeof(Table1), new System.Guid("{67E93567-FBF3-490C-A9AD-D94AF43F9F22}"));
11 t.Name = "peter";
12
13 transaction.Commit();
14 session.Flush();
15 session.Close();
//=====================================================我将如上代码放到一个窗口程序中无错。放到类库中第6行能通过,应该说明Hibernate配置文件识别了。但到第8行出错,不知为何,如下://=====================================================
未处理的“NHibernate.ADOException”类型的异常出现在 mscorlib.dll 中。
其他信息: cannot open connectionUnhandled Exception: NHibernate.ADOException: cannot open connection ---> NHibernate.ADOException: Could not create connection from Driver ---> System.Runtime.InteropServices.COMException (0x8004D024): The transaction manager has disabled its support for remote/network transactions.
at System.Data.Common.ITransactionExportFactory.Create(UInt32 DTCLength, Byte[] DTCAddr, ITransactionExport& export)
at System.Data.SqlClient.Transaction.CreateTransactionExport(Byte[] dtcAddr, UInt32 dtcLength, ITransaction transaction, ITransactionExport& transactionExport)
at System.Data.SqlClient.Transaction.GetTransactionCookie(Byte[] dtcAddr, ITransaction transaction, ITransactionExport& transactionExport, Byte[]& cookie, Int32& length)
at System.Data.SqlClient.SqlInternalConnection.EnlistNonNullDistributedTransaction(ITransaction transaction)
at System.Data.SqlClient.SqlInternalConnection.EnlistDistributedTransaction(ITransaction newTransaction, Guid newTransactionGuid)
at System.Data.SqlClient.SqlInternalConnection.EnlistDistributedTransaction()
at System.Data.SqlClient.SqlInternalConnection.Activate(Boolean isInTransaction)
at System.Data.SqlClient.SqlConnection.Open()
at NHibernate.Connection.DriverConnectionProvider.GetConnection()
--- End of inner exception stack trace ---
at NHibernate.Connection.DriverConnectionProvider.GetConnection()
at NHibernate.Impl.SessionFactoryImpl.OpenConnection()
--- End of inner exception stack trace ---
//=====================================================
//=====================================================
1 Configuration cfg = new Configuration();
2
3 cfg.AddXmlFile(@"E:\Project\MyProgram\Test\Table1.hbm.xml");
4 cfg.AddAssembly("MyProgram");
5
6 NHibernate.ISessionFactory factory = cfg.BuildSessionFactory();
7 NHibernate.ISession session = factory.OpenSession();
8 NHibernate.ITransaction transaction = session.BeginTransaction();
9
10 Table1 t = (Table1)session.Load(typeof(Table1), new System.Guid("{67E93567-FBF3-490C-A9AD-D94AF43F9F22}"));
11 t.Name = "peter";
12
13 transaction.Commit();
14 session.Flush();
15 session.Close();
//=====================================================我将如上代码放到一个窗口程序中无错。放到类库中第6行能通过,应该说明Hibernate配置文件识别了。但到第8行出错,不知为何,如下://=====================================================
未处理的“NHibernate.ADOException”类型的异常出现在 mscorlib.dll 中。
其他信息: cannot open connectionUnhandled Exception: NHibernate.ADOException: cannot open connection ---> NHibernate.ADOException: Could not create connection from Driver ---> System.Runtime.InteropServices.COMException (0x8004D024): The transaction manager has disabled its support for remote/network transactions.
at System.Data.Common.ITransactionExportFactory.Create(UInt32 DTCLength, Byte[] DTCAddr, ITransactionExport& export)
at System.Data.SqlClient.Transaction.CreateTransactionExport(Byte[] dtcAddr, UInt32 dtcLength, ITransaction transaction, ITransactionExport& transactionExport)
at System.Data.SqlClient.Transaction.GetTransactionCookie(Byte[] dtcAddr, ITransaction transaction, ITransactionExport& transactionExport, Byte[]& cookie, Int32& length)
at System.Data.SqlClient.SqlInternalConnection.EnlistNonNullDistributedTransaction(ITransaction transaction)
at System.Data.SqlClient.SqlInternalConnection.EnlistDistributedTransaction(ITransaction newTransaction, Guid newTransactionGuid)
at System.Data.SqlClient.SqlInternalConnection.EnlistDistributedTransaction()
at System.Data.SqlClient.SqlInternalConnection.Activate(Boolean isInTransaction)
at System.Data.SqlClient.SqlConnection.Open()
at NHibernate.Connection.DriverConnectionProvider.GetConnection()
--- End of inner exception stack trace ---
at NHibernate.Connection.DriverConnectionProvider.GetConnection()
at NHibernate.Impl.SessionFactoryImpl.OpenConnection()
--- End of inner exception stack trace ---
//=====================================================
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货