2

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 の処理中 ---> System.Exception: エンドポイントの開始時に例外が発生しました。エラーがログに記録されました。理由: タイプ「RavenTimeoutPersistence」でコンストラクター「Void .ctor(Raven.Client.IDocumentStore)」を呼び出しているときに例外がスローされました。---> Autofac.Core.DependencyResolutionException: タイプ「RavenTimeoutPersistence」でコンストラクター「Void .ctor(Raven.Client.IDocumentStore)」を呼び出しているときに例外がスローされました。---> System.Net.WebExce ption: リモート サーバーに接続できません ---> System.Net.Sockets.SocketExce ption:

4

2 に答える 2

4

3.2では、TimeoutManagerはデフォルトでオンになっているため、Ravenを使用しないようにオフにする必要があります。Configure.DisableTimeoutManager()

于 2012-06-07T06:22:21.483 に答える
0

私のインスタンスは、同じ質問に該当すると思われるエラー メッセージを作成していますが、次のメッセージが作成されます --

Message=ターゲット マシンがアクティブに拒否したため、接続できませんでした 127.0.0.1:8080

ローカル マシンのポート 8080 に接続しようとしている理由がわかりません。また、ポート 8080 で何も実行されていないにもかかわらず、なぜ失敗するのでしょうか?

これを機能させるには、RavenDB のインスタンスをポート 8080 で実行する必要がありますか? これが私が得ている実際の例外です...

System.Net.WebException はユーザー コードによって処理され
ませんでした HResult=-2146233079 メッセージ = リモート サーバーに接続できません
ソース = システム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](Func2 操作、文字列 operationUrl、ブール値の avoidThrowing、T& 結果) の c:\Builds\raven\Raven\Raven.Client.Lightweight\Connection\ServerClient.cs:line 204 at Raven.Client.Connection.ServerClient.ExecuteWithReplication[T](String method 、関数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, IndexDefinitionBuilder2 indexDef、ブール値の上書き) c:\Builds\raven\Raven.Client.Lightweight\Connection\ServerClient.cs:line 665 at NServiceBus.Timeout.Hosting.Windows.Persistence.RavenTimeoutPersistence..ctor(IDocumentStore store) in c: \TeamCity\buildAgent\work\nsb.master_8\src\timeout\NServiceBus.Timeout.Hosting.Windows\Persistence\RavenTimeoutPersistence.cs:line 22 InnerException: System.Net.Sockets.SocketException HResult=-2147467259 Message=No connection could beターゲット マシンがアクティブに拒否したため作成されました 127.0.0.1:8080 Source=System ErrorCode=10061 NativeErrorCode=10061 StackTrace: at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.System.Net.ServicePoint.ConnectSocketInternal での InternalConnect(EndPoint remoteEP) (Boolean connectFailure、Socket s4、Socket s6、Socket& socket、IPAddress& address、ConnectSocketState 状態、IAsyncResult asyncResult、Exception& exception) InnerException:

アップデート:

それで、すべてのフラストレーションを経た後、NServiceBus はポート 8080 を使用して RavenDB に接続しようとしていたようです。 NServiceBus は db (多分?) を提供し、代わりに以前のインストールを使用したいと考えていました。問題は、RavenDB の最初のインストールがポート 8079 で実行されていたことです (これが RavenDB のデフォルトだと思います)。そのため、サーバーとして単純な EndpointConfig クラスだけを使用して NServiceBus を実行すると、ポート 8080 で何も検出されず、実行したくありません。

話の教訓:NServiceBusをインストールする前にRavenDBを削除するか、ポート8080でRavenDBを実行してからNServiceBusをインストールして、最初に発生したこれらのエラーをすべて削除します。

于 2012-10-22T14:34:06.227 に答える