我的代码如下:
//=====================================================
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 ---
//=====================================================