启动NserviceBus.host时出现RavenTimeoutPersistence错误

时间:2012-07-17 07:22:54

标签: nservicebus ravendb

当我尝试&启动我的一项服务我收到此错误: There is no index named: RavenTimeoutPersistence/TimeoutDataSortedByTime

堆栈跟踪:

  

未处理的异常:Magnum.StateMachine.StateMachineException:   Topshelf.Internal.ServiceControlle中发生异常   环R 1[[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](Func 2   operation,String operationUrl,Boolean avoidThrowing,T&amp;结果)
  在   Raven.Client.Connection.ServerClient.ExecuteWithReplication [T](字符串   方法,Func 2 operation) at Raven.Client.Connection.ServerClient.Query(String index, IndexQuery query, String[] includes) at Raven.Client.Document.AbstractDocumentQuery 2.ExecuteActualQuery()
  在Raven.Client.Document.AbstractDocumentQuery 2.get_QueryResult()
at Raven.Client.Linq.RavenQueryProviderProcessor
1.ExecuteQueryTProjection   在Raven.Client.Linq.RavenQueryProviderProcessor 1.Execute(Expression expression) at Raven.Client.Linq.RavenQueryProvider 1.Execute(表达式表达式)   在   Raven.Client.Linq.RavenQueryProvider 1.System.Linq.IQueryProvider.Execute(Expression expression) at Raven.Client.Linq.RavenQueryInspector 1.GetEnumerator()at at   System.Collections.Generic.List 1.InsertRange(Int32 index, IEnumerable 1集合)at   NServiceBus.Timeout.Hosting.Windows.Persistence.RavenTimeoutPersistence.GetAll()   在NServiceBus.Timeout.Core.TimeoutRunner.CacheExistingTimeouts()
  在NServiceBus.Timeout.Core.TimeoutRunner.Run()at   System.Collections.Generic.List 1.ForEach(Action 1动作)at   NServiceBus.Unicast.UnicastBus.NServiceBus.IStartableBus.Start(动作   在NServiceBus.Hosting.GenericHost.Start()中的startupAction   C:\ TeamCity的\ buildAgent \工作\ nsb.master_6的\ src \主持\ NServiceBus.Hostin   g \ GenericHost.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();

我在这台机器上运行的其他服务没有错误。我尝试重新启动ravendb服务。

运行Nservicebus 3.2.5

1 个答案:

答案 0 :(得分:2)

您缺少索引:RavenTimeoutPersistence / TimeoutDataSortedByTime

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