NServiceBus端点在升级3.0.3后寻找RavenDB超时 - > 3.2.2

时间:2012-06-05 20:58:49

标签: nservicebus nservicebus3

使用NuGet我将项目中的所有NServiceBus引用从3.0.3升级到3.2.2 对于此解决方案中的4个服务,我还向他们提供了来自NuGet

的NServiceBus.Host的引用

我将二进制文件部署到测试环境,服务现在启动但在一段时间后失败并出现以下错误。 3.2中是否需要一些额外的配置?

未处理的异常:Magnum.StateMachine.StateMachineException:异常发生 在Topshelf.Internal.ServiceController`1 [[NServiceBus.Hosting.Windows.Windows]中编辑 Host,NServiceBus.Host,Version = 3.2.0.0,Culture = neutral,PublicKeyToken = 9fc3864 79f8a226c]]在处理OnStart时的状态Initial期间---> System.Exception:E 启动端点时出现xception,已记录错误。理由:例外是  在调用构造函数'Void .ctor(Raven.Client.IDocumentStore)时抛出  在'RavenTimeoutPersistence'类型上。 ---> Autofac.Core.DependencyResolutionExcept ion:调用构造函数'Void .ctor(Raven.Cl。)时抛出异常 'ient.IDocumentStore)'on type'RavenTimeoutPersistence'。 ---> System.Net.WebExce ption:无法连接到远程服务器---> System.Net.Sockets.SocketExce 请注意:由于目标机器主动拒绝我,因此无法建立连接 吨

2 个答案:

答案 0 :(得分:4)

在3.2中,默认情况下TimeoutManager处于打开状态,因此您需要将其关闭以避免使用Raven。 Configure.DisableTimeoutManager()

答案 1 :(得分:0)

我的实例正在创建一条错误消息我相信属于同一个问题,但它会创建以下消息 -

  

消息=因为目标计算机无法建立连接   积极拒绝它127.0.0.1:8080

我不确定为什么要尝试连接到本地计算机上的端口8080。此外,即使端口8080上没有运行任何东西,为什么它会失败?

我是否必须在端口8080上运行RavenDB实例才能实现此功能?这是我得到的实际例外......

  

System.Net.WebException未被用户代码
处理   HResult = -2146233079消息=无法连接到远程服务器
  Source = System StackTrace:          在System.Net.HttpWebRequest.GetResponse()          在Raven.Client.Connection.HttpJsonRequest.ReadStringInternal(Func 1 getResponse) in c:\Builds\raven\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:line 301 at Raven.Client.Connection.HttpJsonRequest.ReadResponseString() in c:\Builds\raven\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:line 206 at Raven.Client.Connection.HttpJsonRequest.ExecuteRequest() in c:\Builds\raven\Raven.Client.Lightweight\Connection\HttpJsonRequest.cs:line 154 at Raven.Client.Connection.ServerClient.DirectPutIndex(String name, String operationUrl, Boolean overwrite, IndexDefinition definition) in c:\Builds\raven\Raven.Client.Lightweight\Connection\ServerClient.cs:line 629 at Raven.Client.Connection.ServerClient.<>c__DisplayClass34.<PutIndex>b__33(String operationUrl) in c:\Builds\raven\Raven.Client.Lightweight\Connection\ServerClient.cs:line 608 at Raven.Client.Connection.ServerClient.TryOperation[T](Func 2操作,String operationUrl,Boolean avoidThrowing,T&amp; result)in   C:\构建\乌鸦\ Raven.Client.Lightweight \连接\ ServerClient.cs:线   204          在Raven.Client.Connection.ServerClient.ExecuteWithReplication [T](String   方法,Func 2 operation) in c:\Builds\raven\Raven.Client.Lightweight\Connection\ServerClient.cs:line 168 at Raven.Client.Connection.ServerClient.PutIndex(String name, IndexDefinition definition, Boolean overwrite) in c:\Builds\raven\Raven.Client.Lightweight\Connection\ServerClient.cs:line 608 at Raven.Client.Connection.ServerClient.PutIndex[TDocument,TReduceResult](String name, IndexDefinitionBuilder 2 indexDef,布尔覆盖)in   C:\构建\乌鸦\ Raven.Client.Lightweight \连接\ ServerClient.cs:线   665          在NServiceBus.Timeout.Hosting.Windows.Persistence.RavenTimeoutPersistence..ctor(IDocumentStore)   商店)   C:\ TeamCity的\ buildAgent \工作\ nsb.master_8的\ src \暂停\ NServiceBus.Timeout.Hosting.Windows \持久性\ RavenTimeoutPersistence.cs:行   22 InnerException:System.Net.Sockets.SocketException          的HResult = -2147467259          消息=无法建立连接,因为目标计算机主动拒绝它127.0.0.1:8080          来源=系统          错误码= 10061          NativeErrorCode = 10061          堆栈跟踪:               在System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot,SocketAddress socketAddress)               在System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP)               在System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure,Socket s4,Socket s6,Socket&amp; socket,IPAddress&amp;   地址,ConnectSocketState状态,IAsyncResult asyncResult,   异常和放大器;例外)          的InnerException:

更新:

所以在经历了所有的挫折之后,似乎NServiceBus尝试使用端口8080连接到RavenDB。因为我已经为其他项目安装了RavenDB,似乎“RuMeFirst.bat”认为它不会使用NServiceBus提供的db(可能?),而是想使用我以前的安装。问题是,我最初安装的RavenDB是在端口8079上运行的(我认为这是RavenDB的默认设置)。因此,当我只使用一个简单的EndpointConfig类作为服务器运行NServiceBus时,它将无法在端口8080上找到任何内容并且不想运行。

故事的道德:在安装NServiceBus之前删除RavenDB或在端口8080上运行RavenDB,然后安装NServiceBus以删除我最初获得的任何错误。

相关问题