2010-12-28 21 views
0

良い午後を落とすBuidSessionFactory()デッドロック/、NHibernateのエラー:接続

私は今、数日間、この問題に引っかかってきたと私はNHibernateは/、SQL Serverの私の理解は非常に十分であると感じていません私はそれを理解するかもしれない。

Nhibernate.Cfg.Configuaration.BuildSessionFactory(); 

だけで実行されている状態のままとなり、私はNUnitのが応答してもらうために、「停止」を押すことを余儀なくしています:

問題がに電話を作製することを含む任意のユニットテストがあることです。その時点で、エラーダイアログは、次の情報が表示されます:「例外テキスト」された状態で

「対象のコンピュータによって拒否されたため、接続が確立されていないことができました」。

System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:51293 

Server stack trace: 
    at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) 
    at System.Net.Sockets.Socket.Connect(EndPoint remoteEP) 
    at System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket(EndPoint ipEndPoint) 
    at System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket() 
    at System.Runtime.Remoting.Channels.SocketCache.GetSocket(String machinePortAndSid, Boolean openNew) 
    at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream) 
    at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream) 
    at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg) 

Exception rethrown at [0]: 
    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
    at NUnit.Core.TestRunner.get_Running() 
    at NUnit.Core.ProxyTestRunner.get_Running() 
    at NUnit.Util.TestLoader.get_Running() 
    at NUnit.Gui.NUnitForm.get_IsTestRunning() 
    at NUnit.Gui.NUnitForm.CancelRun() 
    at System.Windows.Forms.Control.OnClick(EventArgs e) 
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 
    at System.Windows.Forms.Control.WndProc(Message& m) 
    at System.Windows.Forms.ButtonBase.WndProc(Message& m) 
    at System.Windows.Forms.Button.WndProc(Message& m) 
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 

私のNHibernateは、次のように構成されています。

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property> 
    <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property> 
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property> 
    <property name="connection.connection_string">Server=MachineName\SQLEXPRESS;database=TestingDB;Integrated Security=true;</property> 
    <property name ="proxyfactory.factory_class">NHibernate.ByteCode.LinFu.ProxyFactoryFactory, Nhibernate.ByteCode.LinFu</property> 
    <property name="show_sql">true</property> 
    </session-factory> 
</hibernate-configuration> 

とTestFixtureSetupは以下を呼び出すと:

_configuration.Configure(); 
_configuration.AddAssembly(typeof(MyClass).Assembly); 
_sessionFactory = _configuration.BuildSessionFactory(); 

テストは、単に最後の行にハングアップします。何がうまくいかないかを理解するために、私はlog4netを有効にして、テストを実行するときに次の出力を得ました。あなたが見ることができるように

[TestRunnerThread] INFO NHibernate.Cfg.Environment - NHibernate 2.1.2.4000 (2.1.2.4000) 
[TestRunnerThread] INFO NHibernate.Cfg.Environment - hibernate-configuration section not found in application configuration file 
[TestRunnerThread] INFO NHibernate.Cfg.Environment - Bytecode provider name : lcg 
[TestRunnerThread] INFO NHibernate.Cfg.Environment - Using reflection optimizer 
[TestRunnerThread] DEBUG NHibernate.Cfg.Configuration - connection.provider=NHibernate.Connection.DriverConnectionProvider 
[TestRunnerThread] DEBUG NHibernate.Cfg.Configuration - dialect=NHibernate.Dialect.MsSql2008Dialect 
[TestRunnerThread] DEBUG NHibernate.Cfg.Configuration - connection.driver_class=NHibernate.Driver.SqlClientDriver 
[TestRunnerThread] DEBUG NHibernate.Cfg.Configuration - connection.connection_string=Server=MachineName\SQLEXPRESS;database=MySolution_Testing;Integrated Security=true; 
[TestRunnerThread] DEBUG NHibernate.Cfg.Configuration - proxyfactory.factory_class=NHibernate.ByteCode.LinFu.ProxyFactoryFactory, Nhibernate.ByteCode.LinFu 
[TestRunnerThread] DEBUG NHibernate.Cfg.Configuration - show_sql=true 
[TestRunnerThread] DEBUG NHibernate.Cfg.Configuration - properties: System.Collections.Generic.Dictionary`2[System.String,System.String] 
[TestRunnerThread] INFO NHibernate.Cfg.Configuration - Mapping resource: MySolution.Models.Mappings.MenuItem.hbm.xml 
[TestRunnerThread] INFO NHibernate.Dialect.Dialect - Using dialect: NHibernate.Dialect.MsSql2008Dialect 
[TestRunnerThread] INFO NHibernate.Cfg.XmlHbmBinding.Binder - Mapping class: MySolution.Models.MenuItem -> MenuItems 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: ID -> MenuItemID, type: Int32 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: Name -> MenuItemName, type: String 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: ControllerName -> MenuItemController, type: String 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: ActionName -> MenuItemAction, type: String 
[TestRunnerThread] INFO NHibernate.Cfg.Configuration - Mapping resource: MySolution.Models.Mappings.Perspective.hbm.xml 
[TestRunnerThread] INFO NHibernate.Dialect.Dialect - Using dialect: NHibernate.Dialect.MsSql2008Dialect 
[TestRunnerThread] INFO NHibernate.Cfg.XmlHbmBinding.Binder - Mapping class: MySolution.Models.UserPerspective -> Perspectives 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: ID -> PerspectiveID, type: Int32 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: Name -> PerspectiveName, type: String 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: Description -> PerspectiveDescription, type: String 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: Password -> PerspectivePassword, type: String 
[TestRunnerThread] INFO NHibernate.Cfg.Configuration - Mapping resource: MySolution.Models.Mappings.ViewGroup.hbm.xml 
[TestRunnerThread] INFO NHibernate.Dialect.Dialect - Using dialect: NHibernate.Dialect.MsSql2008Dialect 
[TestRunnerThread] INFO NHibernate.Cfg.XmlHbmBinding.Binder - Mapping class: MySolution.Models.ViewGroup -> ViewGroups 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: ID -> ViewGroupID, type: Int32 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: Perspective -> Link_PerspectiveID, type: MySolution.Models.UserPerspective 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped property: MenuItems, type: Iesi.Collections.Generic.ISet`1[[MySolution.Models.MenuItem, MySolution.Models, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]](MySolution.Models.ViewGroup.MenuItems) 
[TestRunnerThread] INFO NHibernate.Cfg.Configuration - checking mappings queue 
[TestRunnerThread] INFO NHibernate.Cfg.Configuration - processing one-to-many association mappings 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Second pass for collection: MySolution.Models.ViewGroup.MenuItems 
[TestRunnerThread] INFO NHibernate.Cfg.XmlHbmBinding.Binder - mapping collection: MySolution.Models.ViewGroup.MenuItems -> MenuItems 
[TestRunnerThread] DEBUG NHibernate.Cfg.XmlHbmBinding.Binder - Mapped collection key: MenuItemID, one-to-many: MySolution.Models.MenuItem 
[TestRunnerThread] INFO NHibernate.Cfg.Configuration - processing one-to-one association property references 
[TestRunnerThread] INFO NHibernate.Cfg.Configuration - processing foreign key constraints 
[TestRunnerThread] DEBUG NHibernate.Cfg.Configuration - resolving reference to class: MySolution.Models.ViewGroup 
[TestRunnerThread] DEBUG NHibernate.Cfg.Configuration - resolving reference to class: MySolution.Models.UserPerspective 
[TestRunnerThread] INFO NHibernate.Cfg.Configuration - processing filters (second pass) 
[TestRunnerThread] INFO NHibernate.Dialect.Dialect - Using dialect: NHibernate.Dialect.MsSql2008Dialect 
[TestRunnerThread] INFO NHibernate.Exceptions.SQLExceptionConverterFactory - Using dialect defined converter 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Generate SQL with comments: disabled 
[TestRunnerThread] INFO NHibernate.Connection.ConnectionProviderFactory - Initializing connection provider: NHibernate.Connection.DriverConnectionProvider 
[TestRunnerThread] INFO NHibernate.Connection.ConnectionProvider - Configuring ConnectionProvider 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Transaction factory: NHibernate.Transaction.AdoNetWithDistrubtedTransactionFactory 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Optimize cache for minimal puts: False 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Connection release mode: auto 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Default batch fetch size: 1 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - echoing all SQL to stdout 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Statistics: disabled 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Query translator: NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Query language substitutions: {} 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - cache provider: NHibernate.Cache.NoCacheProvider, NHibernate, Version=2.1.2.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4 
[TestRunnerThread] DEBUG NHibernate.Cfg.SettingsFactory - Wrap result sets: disabled 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Batcher factory: NHibernate.AdoNet.NonBatchingBatcherFactory, NHibernate, Version=2.1.2.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Default entity-mode: Poco 
[TestRunnerThread] INFO NHibernate.Cfg.SettingsFactory - Named query checking : enabled 
[TestRunnerThread] INFO NHibernate.Impl.SessionFactoryImpl - building session factory 
[TestRunnerThread] DEBUG NHibernate.Impl.SessionFactoryImpl - Session factory constructed with filter configurations : {} 
[TestRunnerThread] DEBUG NHibernate.Impl.SessionFactoryImpl - instantiating session factory with properties: {'use_reflection_optimizer'='True', 'connection.provider'='NHibernate.Connection.DriverConnectionProvider', 'dialect'='NHibernate.Dialect.MsSql2008Dialect', 'connection.driver_class'='NHibernate.Driver.SqlClientDriver', 'connection.connection_string'='Server=MachineName\SQLEXPRESS;database=MySolution_Testing;Integrated Security=true;', 'proxyfactory.factory_class'='NHibernate.ByteCode.LinFu.ProxyFactoryFactory, Nhibernate.ByteCode.LinFu', 'show_sql'='true'} 
[TestRunnerThread] DEBUG NHibernate.Connection.DriverConnectionProvider - Obtaining IDbConnection from Driver 
[TestRunnerThread] DEBUG NHibernate.Connection.ConnectionProvider - Closing connection 

、NHibernateのは正しくそれを自己を構成するように見える、しかし、最後の2行は、接続が実際に何かエラーのために要求され、それが全て閉鎖されたときにことを示唆しているように見えます。これはNUnitには報告されていないので、有効な接続が無期限に使用されるのを待ってそこに座ります。

Fluent設定を使用する他のプロジェクトは正しく機能しているようですが、これらの古いプロジェクトではSQL ExpressではなくSQL Compactデータベースを使用しています。

誰でもこの問題の解決方法を提案できますか?

ありがとうございます。

答えて

0

これは、nunit-agent.exeプロセスをクラッシュさせるスタックオーバーフローが原因と考えられます。これにより、nunit.exeテストランナーはエージェントプロセスとの接続を失います。詳細については、NUnit crashing with NHibernateを参照してください。

私はこれがほぼ一歳だと知っていますが、うまくいけば、あなたまたは他の人がこれを使用していると感じるかもしれません。

+0

ご意見ありがとうございます。あなたの言うように、この質問はほぼ一歳ですので、私は移動しました。私はこのエラーの理由は、私のSQLサーバーの設定と関係があり、私はスイート全体を再インストールしたと信じています。私はまだ同じマシンで作業しており、問題なくNHibernateとNUnitを使用しているので、何か作業が必要です。 – user407356