使用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 请注意:由于目标机器主动拒绝我,因此无法建立连接 吨
答案 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(Func1 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 方法,Func2 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以删除我最初获得的任何错误。