启动 NserviceBus.host 时出现 RavenTimeoutPersistence 错误 [英] RavenTimeoutPersistence error when starting NserviceBus.host

查看:57
本文介绍了启动 NserviceBus.host 时出现 RavenTimeoutPersistence 错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试 &启动我的一项服务时出现此错误:没有名为:RavenTimeoutPersistence/TimeoutDataSortedByTime的索引

When I try & start one of my services I get this error: There is no index named: RavenTimeoutPersistence/TimeoutDataSortedByTime

堆栈跟踪:

未处理的异常:Magnum.StateMachine.StateMachineException:Topshelf.Internal.ServiceControlle 中发生异常r1[[NServiceBus.Hosting.Windows.WindowsHost, NServiceBus.Host,版本=3.2.0.0,文化=中性,PublicKeyToken=9fc3864 79f8a226c]]在处理 OnStart 时的 Initial 状态 --->系统异常:启动端点时出现异常,已记录错误 h.原因:没有索引命名为:RavenTimeoutPersistence/TimeoutDataSortedByTime --->System.InvalidOperationException: 没有名为的索引:RavenTimeoutPersistence/TimeoutDataSortedByTime atRaven.Client.Connection.ServerClient.DirectQuery(字符串索引,IndexQuery 查询、String operationUrl、String[] inc ludes) atRaven.Client.Connection.ServerClient.<>c__DisplayClass37.<Query>b__36(Stringu) 在 Raven.Client.Connection.ServerClient.TryOperation[T](Func2操作,字符串 operationUrl,布尔值避免投掷,T&结果)
在Raven.Client.Connection.ServerClient.ExecuteWithReplication[T](String方法,Func2 操作)在Raven.Client.Connection.ServerClient.Query(字符串索引,IndexQuery查询,String[] 包括)在Raven.Client.Document.AbstractDocumentQuery2.ExecuteActualQuery()
在 Raven.Client.Document.AbstractDocumentQuery2.get_QueryResult()
在Raven.Client.Linq.RavenQueryProviderProcessor
1.ExecuteQueryTProjection在 Raven.Client.Linq.RavenQueryProviderProcessor1.Execute(Expression表达式)在Raven.Client.Linq.RavenQueryProvider1.Execute(表达式)在Raven.Client.Linq.RavenQueryProvider1.System.Linq.IQueryProvider.Execute(Expression表达式)在Raven.Client.Linq.RavenQueryInspector1.GetEnumerator() 在System.Collections.Generic.List1.InsertRange(Int32 index,IEnumerable1 个集合)在NServiceBus.Timeout.Hosting.Windows.Persistence.RavenTimeoutPersistence.GetAll()在 NServiceBus.Timeout.Core.TimeoutRunner.CacheExistingTimeouts()
在 NServiceBus.Timeout.Core.TimeoutRunner.Run() 在System.Collections.Generic.List1.ForEach(Action1 action) atNServiceBus.Unicast.UnicastBus.NServiceBus.IStartableBus.Start(ActionstartupAction) 在 NServiceBus.Hosting.GenericHost.Start() 中c:\TeamCity\buildAgent\work\nsb.master_6\src\hosting\NServiceBus.Hosting\GenericHost.cs:line 34

Unhandled Exception: Magnum.StateMachine.StateMachineException: Exception occurred in Topshelf.Internal.ServiceControlle r1[[NServiceBus.Hosting.Windows.WindowsHost, NServiceBus.Host, Version=3.2.0.0, Culture=neutral, PublicKeyToken=9fc3864 79f8a226c]] during state Initial while handling OnStart ---> System.Exception: Exception when starting endpoint, error h as been logged. Reason: There is no index named: RavenTimeoutPersistence/TimeoutDataSortedByTime ---> System.InvalidOper ationException: There is no index named: RavenTimeoutPersistence/TimeoutDataSortedByTime at Raven.Client.Connection.ServerClient.DirectQuery(String index, IndexQuery query, String operationUrl, String[] inc ludes) at Raven.Client.Connection.ServerClient.<>c__DisplayClass37.<Query>b__36(String u) at Raven.Client.Connection.ServerClient.TryOperation[T](Func2 operation, String operationUrl, Boolean avoidThrowing, T& result)
at Raven.Client.Connection.ServerClient.ExecuteWithReplication[T](String method, Func2 operation) at Raven.Client.Connection.ServerClient.Query(String index, IndexQuery query, String[] includes) at Raven.Client.Document.AbstractDocumentQuery2.ExecuteActualQuery()
at Raven.Client.Document.AbstractDocumentQuery2.get_QueryResult()
at Raven.Client.Linq.RavenQueryProviderProcessor
1.ExecuteQueryTProjection at Raven.Client.Linq.RavenQueryProviderProcessor1.Execute(Expression expression) at Raven.Client.Linq.RavenQueryProvider1.Execute(Expression expression) at Raven.Client.Linq.RavenQueryProvider1.System.Linq.IQueryProvider.Execute(Expression expression) at Raven.Client.Linq.RavenQueryInspector1.GetEnumerator() at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable1 collection) at NServiceBus.Timeout.Hosting.Windows.Persistence.RavenTimeoutPersistence.GetAll() at NServiceBus.Timeout.Core.TimeoutRunner.CacheExistingTimeouts()
at NServiceBus.Timeout.Core.TimeoutRunner.Run() at System.Collections.Generic.List1.ForEach(Action1 action) at NServiceBus.Unicast.UnicastBus.NServiceBus.IStartableBus.Start(Action startupAction) at NServiceBus.Hosting.GenericHost.Start() in c:\TeamCity\buildAgent\work\nsb.master_6\src\hosting\NServiceBus.Hostin g\GenericHost.cs:line 34

主机配置为:

var container = new WindsorContainer();
container.Install(FromAssembly.This());

Configure.With()
    .DefiningEventsAs(t => t.Namespace != null && t.Namespace.StartsWith("Events"))
    .DefiningCommandsAs(t => t.Namespace != null && t.Namespace.StartsWith("Messages"))
    .CastleWindsorBuilder(container)
    .XmlSerializer()
    .MsmqTransport()
    .IsTransactional(true)
    .IsolationLevel(IsolationLevel.ReadUncommitted) 
    .UnicastBus()
    .RavenSagaPersister()
    .RavenSubscriptionStorage()
    .UseRavenTimeoutPersister()
    .RunTimeoutManager()
    .ForInstallationOn<NServiceBus.Installation.Environments.Windows>().Install();

我在这台机器上有其他服务运行没有错误.我试过重启 ravendb 服务.

I have other services on this machine that are running without error. I've tried restarting the ravendb service.

运行 Nservicebus 3.2.5

Running Nservicebus 3.2.5

推荐答案

您缺少一个索引:RavenTimeoutPersistence/TimeoutDataSortedByTime

You are missing an index: RavenTimeoutPersistence/TimeoutDataSortedByTime

你需要创建它,或者NSB需要创建它,我不确定这个索引来自哪里.

You need to create it, or NSB needs to create it, I am not sure where this index came from.

这篇关于启动 NserviceBus.host 时出现 RavenTimeoutPersistence 错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆