启动NserviceBus.host时出现RavenTimeoutPersistence错误

启动NserviceBus.host时出现RavenTimeoutPersistence错误,nservicebus,ravendb,Nservicebus,Ravendb,当我尝试启动其中一项服务时,会出现以下错误: 没有名为RavenTimeoutPersistence/TimeoutDataSortedByTime的索引 堆栈跟踪: 未处理的异常:Magnum.StateMachine.StateMachineException: Topshelf.Internal.ServiceControlle中发生异常 r1[[NServiceBus.Hosting.Windows.WindowsHost,NServiceBus.Host, 版本=3.2.0.0,区域性

当我尝试启动其中一项服务时,会出现以下错误:
没有名为RavenTimeoutPersistence/TimeoutDataSortedByTime的索引

堆栈跟踪:

未处理的异常:Magnum.StateMachine.StateMachineException: Topshelf.Internal.ServiceControlle中发生异常 r
1[[NServiceBus.Hosting.Windows.WindowsHost,NServiceBus.Host,
版本=3.2.0.0,区域性=中性,PublicKeyToken=9fc3864 79f8a226c]]
在处理OnStart-->System时处于初始状态期间。异常:
启动端点时出现异常,已记录错误h。原因:
没有名为RavenTimeoutPersistence/TimeoutDataSortedByTime的索引-->
System.InvalidOper异常:没有名为的索引:
RavenTimeoutPersistence/TimeoutDataSortedByTime在
Raven.Client.Connection.ServerClient.DirectQuery(字符串索引,
IndexQuery查询,字符串操作URL,字符串[]包含项)位于
Raven.Client.Connection.ServerClient.c\u DisplayClass37.b\u 36(字符串
u) 在Raven.Client.Connection.ServerClient.tryooperation[T](Func
2 操作、字符串操作URL、布尔避免抛出、T和结果)
在 Raven.Client.Connection.ServerClient.ExecuteWithReplication[T](字符串 方法,Func
2操作)
Raven.Client.Connection.ServerClient.Query(字符串索引,索引查询
查询,字符串[]包括)位于
Raven.Client.Document.AbstractDocumentQuery
2.ExecuteActualQuery()
在Raven.Client.Document.AbstractDocumentQuery
2.get\u QueryResult()
在 Raven.Client.Linq.RavenQueryProviderProcessor
1.ExecuteQueryProject 在Raven.Client.Linq.RavenQueryProviderProcessor
1.Execute(表达式
表达式)在
Raven.Client.Linq.RavenQueryProvider
1.Execute(表达式) 在 Raven.Client.Linq.RavenQueryProvider
1.System.Linq.IQueryProvider.Execute(表达式
表达式)在
Raven.Client.Linq.ravenkeryInspector
1.GetEnumerator()位于 System.Collections.Generic.List
1.InsertRange(Int32索引,
IEnumerable
1集合)位于 NServiceBus.Timeout.Hosting.Windows.Persistence.RavenTimeoutPersistence.GetAll() 在NServiceBus.Timeout.Core.TimeoutRunner.CacheExistingTimeouts()上 在NServiceBus.Timeout.Core.TimeoutRunner.Run()处 System.Collections.Generic.List
1.ForEach(Action
1 Action)位于 NServiceBus.Unicast.UnicastBus.NServiceBus.IStartableBus.Start(操作 中的NServiceBus.Hosting.generihost.Start()处的startupAction) c:\TeamCity\buildAgent\work\nsb.master\u 6\src\hosting\NServiceBus.Hostin g\genericost.cs:第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();
var容器=新的WindsorContainer();
container.Install(fromsassembly.This());
用()配置
.DefiningEventsAs(t=>t.Namespace!=null&&t.Namespace.StartsWith(“事件”))
.DefiningCommandsAs(t=>t.Namespace!=null&&t.Namespace.StartsWith(“消息”))
.CastleWindsorBuilder(集装箱)
.XmlSerializer()
.MsmqTransport()
.IsTransaction(真)
.IsolationLevel(IsolationLevel.ReadUncommitted)
.UnicastBus()
.RavenSagaPersister()
.RavenSubscriptionStorage()文件
.UserAventTimeOutpersister()文件
.RunTimeoutManager()
.ForInstallationOn().Install();
我在这台机器上运行的其他服务没有错误。我已尝试重新启动ravendb服务


运行Nservicebus 3.2.5时,缺少一个索引:RavenTimeoutPersistence/TimeoutDataSortedByTime


您需要创建它,或者NSB需要创建它,我不确定该索引来自何处。

它来自超时持久器创建的NserviceBus。我看了raven,索引就在那里,所以我删除了它,重新创建了它,它开始工作了。看起来索引被破坏了是的,nsb应该自动创建索引,好奇它是如何被破坏的?是时间问题吗?是否多次尝试重新启动终结点?我尝试重新启动并重新安装服务。我重新启动了raven服务&非常沮丧,我甚至重新启动了盒子!没有任何效果,我必须为我们运行的7个服务端点中的5个重新创建相同的索引。@AndreasÖhlund-我没有RavenDB的经验,我遇到了这个错误。(我假设NServiceBus将RavenDB从我身边封装起来)解释一下如何重新创建它会很好。