問題: NSBはカスタムNHB ConnectionProviderを使用しません。カスタムNHibernate ConnectionProviderを持つ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();
そして、これがある限り、私はDBSubscriptionストレージの代わりに、MSMQストレージを使用しないように動作。しかし、私はDBStorageが必要です。
現在約10〜15他のプロジェクトで正常に動作します私たち自身のカスタムされたConnectionProviderを、持っているが、私はNSBでそれを使用しようとすると、私は私には何の意味もdosentエラーが発生します。私がConnectionProviderを省略して標準のNHBを使用すると、正常に動作します。仕事をdoesntの
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");
コンフィグものでなければなら:
カスタムプロバイダ:標準NHBプロバイダと連携
public class MyProvider : DriverConnectionProvider
{
public override IDbConnection GetConnection()
{
var oracleRoleProvider = new OracleRoleProvider();
var dbConnection = Driver.CreateConnection();
return oracleRoleProvider.SetUserRoles(dbConnection); }
}
コンフィグ(これは私が欲しいものないです) :
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がDriverConnectionProvider :)経由IConnectionProviderを実装し、ここで私の髪を引っ張っている:S。
種類は
こんにちは、返信いただきありがとうございました。我々はまだ評価のために無料版を使用しているだけなので、コア版のみにアクセスすることはできません。しかし、すぐにフルバージョンにアップし、最初の1ヶ月間のリリースがないので、バージョン3.0を使用する準備が整うはずです。どうも :) –