問題: NSB不會使用我們的自定義NHB連接提供程序。帶自定義NHibernate連接提供程序的NServiceBus
林配置NSB代碼與以下設置(log4net的是在app.config文件中的唯一的事情):
NServiceBus.SetLoggingLibrary.Log4Net(log4net.Config.XmlConfigurator.Configure);
NServiceBus.Configure.With()
.CustomConfigurationSource(ObjectFactory.GetInstance<IConfigurationSource>())
.StructureMapBuilder()
.XmlSerializer()
.DBSubcriptionStorage(GetNHibernateConfiguration(), false)
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(false)
.UnicastBus()
.LoadMessageHandlers(First<MyEventHandler1>
.Then<MyEventHandler2>())
.CreateBus()
.Start();
而且只要我不使用的,而不是MSMQ存儲DBSubscription存儲這個工程。但我需要DBStorage。
目前,我們有我們自己的自定義的ConnectionProvider,這在約10-15等項目工作正常,但是當我嘗試使用NSB使用它,我得到它dosent任何意義,我的錯誤。如果我省略ConnectionProvider並使用標準NHB,那麼它工作得很好。
自定義提供:
public class MyProvider : DriverConnectionProvider
{
public override IDbConnection GetConnection()
{
var oracleRoleProvider = new OracleRoleProvider();
var dbConnection = Driver.CreateConnection();
return oracleRoleProvider.SetUserRoles(dbConnection); }
}
配置與標準NHB提供商合作(但這不是我想要的):
retval.Add("connection.provider", "NHibernate.Connection.DriverConnectionProvider");
retval.Add("connection.driver_class", "NHibernate.Driver.OracleDataClientDriver");
retval.Add("connection.connection_string", "User Id=user;Password=pass;Pooling=False;Data Source=test");
retval.Add("dialect", "NHibernate.Dialect.Oracle10gDialect");
配置是不工作的,但應:
retval.Add("connection.provider", "MyNamespace.MyProvider, MyNamespace");
retval.Add("connection.driver_class", "NHibernate.Driver.OracleDataClientDriver");
retval.Add("connection.connection_string", "User Id=user;Password=pass;Pooling=False;Data Source=test");
retval.Add("dialect", "NHibernate.Dialect.Oracle10gDialect");
拋出異常:
Exception:
Could not instantiate connection provider: MyProvider
Inner:
Unable to cast object of type 'MyProvider' to type 'NHibernate.Connection.IConnectionProvider'.
版本使用
NServiceBus: 2.5.0.1476
NHibernate: 3.1.0.4000
任何人都可以擺脫對這個問題的一些輕?
我在這裏拉出我的頭髮正弦明顯MYPROVIDER工具IConnectionProvider通過DriverConnectionProvider :):S。
親切的問候
您好,感謝您的答覆和對不起我的反應遲緩。我們仍然只使用免費版進行評估,因此我們無法訪問僅核心版本。但是,由於我們很快就會發布完整版本,並且由於我們不會在第一個月左右發佈,我們應該準備使用3.0版本。謝謝 :) –