我正在尝试使Rebus在Oracle DB上正常工作,但是我一直遇到错误。 我的启动中有以下配置: 在ConfigureServices
services.AutoRegisterHandlersFromAssemblyOf<NewActionRequestMessageHandler>();
services.AddRebus(configure => configure
.Logging(l => l.Serilog())
.Transport(t => t.UseOracle(connectionString, "QueueTable", "Queue"))
.Routing(r => r.TypeBased()
.Map<NewActionRequestMessage>("Queue")
.Map<RevokeActionRequestMessage>("Queue"))
.Subscriptions(s => s.StoreInOracle(connectionString, "Subscriptions")));
在“配置”中
var bus = app.ApplicationServices.GetRequiredService<IBus>();
app.ApplicationServices.UseRebus();
bus.Send(new NewActionRequestMessage());
我得到的错误是:
[11:55:48] Alpha事件ID:分区ID:-尝试接收下一条消息时发生错误:“ Rebus.Exceptions.RebusApplicationException:无法使用键'oracle-transport-connection'进行'GetOrAdd'项'作为Rebus.Oracle.UnitOfWork类型 ---> System.MissingMethodException:找不到方法:'Void Rebus.Transport.ITransactionContext.OnCommitted(System.Func
1<System.Threading.Tasks.Task>)'. at Rebus.Oracle.Transport.TransactionContextExtensions.<>c__DisplayClass2_0.<GetConnection>b__0() at Rebus.Transport.TransactionContextExtensions.<>c__DisplayClass2_0
1.b__0(String id) 在System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func
2 valueFactory处) 在Rebus.Transport.TransactionContextExtensions.GetOrAdd [TItem](ITransactionContext上下文,字符串键,Func1 newItemFactory) --- End of inner exception stack trace --- at Rebus.Transport.TransactionContextExtensions.GetOrAdd[TItem](ITransactionContext context, String key, Func
1 newItemFactory) 在Rebus.Oracle.Transport.TransactionContextExtensions.GetConnection(ITransactionContext上下文,OracleFactory工厂) 在Rebus.Oracle.Transport.OracleTransport.Receive(ITransactionContext上下文,CancellationToken cancelledToken) 在Rebus.Workers.ThreadPoolBased.ThreadPoolWorker.ReceiveTransportMessage(CancellationToken令牌,ITransactionContext上下文)中”
帮助?