2016-08-17 6 views
0

私は、しばらくしてからNServiceBus Windowsサービスを停止できないという問題があります。これを試すと、次の例外が発生します。NServiceBus Windowsサービス:サービスを停止できません

エラー1061:この時点では、サービスは制御メッセージを受け入れることができません。我々はBusConfigurationを設定するには、実際IConfigureThisEndpointインタフェースに必要があるため、https://github.com/Particular/NServiceBus/issues/1898

は悲しいことに、これは助けない:

残念ながら、私は本当にこの問題ではなく、このGithubの-問題については何も見つかりませんでしたこれも長時間走っているわけではありません。私たちはまた、問題のない他のNServiceBus-Endpointsとほぼ同じテンプレートを使用します。

興味深いことに、このエンドポイントではかなりの時間がかかりました。また、特定の1台のサーバーにのみ問題があるようです。

MicrosoftまたはNServiceBusから例外についての詳細を確認することはできますか?

+0

これを別のサーバーに再現できますか?実行中のNServiceBusのバージョンは何ですか?ホストを使用していますか? –

+0

こんにちは、私は他のどのサーバーでも再現できませんでした.RavenDBとM​​SMQの5.2.8バージョンのNServiceBusを使用しています。そして、はい、私が知っている限り、Windowsサービスはホストシェルの背後にありますか、またはあなたが "ホストを使用する"という意味を具体化することができますか? –

+0

ただ私はnservicebus.host.exeを意味する –

答えて

1

グレースフルシャットダウン

このエラーは多くの理由のために発生することができます。 NServiceBusは、正常なシャットダウンだけを試みます。

NServiceBusは現在処理中のメッセージを中止しませんが、新しいメッセージの処理を停止します。

ログファイル

は、ログファイルには、それはあなたが確認することができます最初のものですので、シャットダウンがトリガされたことを示す必要があります。

私は、シャットダウンシーケンスを診断し、またこれを追加することを助けるためにDEBUGにログレベルを設定することをお勧めします:

var appDomainLogger = LogManager.GetLogger("AppDomain"); 
var appDomain = AppDomain.CurrentDomain 
appDomain.FirstChanceException += (o, ea) => { 
    appDomainLogger.Debug("FirstChanceException", ea.Exception); 
}; 
appDomain.UnhandledException += (o, ea) => { 
    appDomainLogger.Debug("UnhandledException", ea.ExceptionObject as Exception); 
}; 

それは例外がシャットダウンを防止し、これは追加の診断を追加すること起こることが考えられます。例えば、メッセージが処理されている場合は、そのデータベースのロックを待っている

ロングランニングメッセージ

は、その後、このメッセージは、Windowsのサービス・インターフェースを可能にする、より多くの時間がかかる可能性がリリースされます。変換のメディアファイルなどの

他のタスク

最終的には、Windowsサービスがシャットダウンするすべてのリソースが解放され、それらがシャットダウンを妨げるバグが含まれていない限り、メッセージが処理を行っている場合。シャットダウン中に容器があまりにも配置されている、また、資源

の廃棄

。あなたのコンテナには、クリーンアップ/ティアダウンがたくさんあるリソースがあるかもしれません。たとえば、メモリ内のキャッシュをディスクまたはリモートストレージにフラッシュするため、次回サービスが開始されるときに、より早く起動して正常に起動することができます。

+0

洞察力のために多くの感謝、私はそれをチェックアウトします。これはSagasを使用している唯一のホストであり、恐らくそれもまた有効です。 –

関連する問題