1

nservice を使用するサイトを新しい実稼働ボックスに展開すると、使用できないほど遅くなりました...

いくつかのデバッグの後、mqsvc.exe が CPU 使用率の 50% を占有し、残りの 50% が w3wp.exe によって占有されていることがわかりました。

ここでこの投稿を見つけました: http://geekswithblogs.net/michaelstephenson/archive/2010/05/07/139717.aspx

以下を推奨しました:

  • NserviceBus Generic Host の Windows サービスを正しい資格情報に設定していることを確認してください

  • 適切な権限でキューが設定されていることを確認してください

  • NServiceBus で適切なログ設定を有効にしてください。

そのため、問題はアクセス許可に関連していると考えましたが、アクセス許可を正しく設定しようとしても (私は思っていました)、問題を解決できませんでした。

4

2 に答える 2

3

問題は、Web サイトにキューへの明示的なアクセス許可を付与する必要があるということでした。

これを教えてくれるオンラインのリソースがたくさん見つかりましたが、アクセスが必要なアカウントを正確にいじるのにかなりの時間を費やさなければなりませんでした...私のアプリケーションプールはApplicationPoolIdentityとして実行するように設定されていたので、次のアカウントを nservicebus キューに追加して、アカウントのアクセス許可を付与します。

IIS AppPool\{APP POOL NAME}

私は完全なアクセス権を付与しましたが、必要に応じて少し調整していただけると思います。

うまくいけば、これは同じ問題に遭遇した人を助けるでしょう.

(これは「自分の質問に答える」メカニズムでの最初の試みなので、何か間違っている場合はお知らせください..)

于 2012-11-28T15:28:44.437 に答える
3

NServiceBus が独自のキューを作成できるようにすると、必要な適切な権限で作成されます。

問題が発生するのは、Web アプリケーションをセットアップした後、キューが作成され、アプリケーションが実行される ID が変更されたときです。次に、まさにこの問題が発生します。NServiceBus はメッセージのキューをチェックしようとしますが、そのためのアクセス権がないため、すぐに何度も再試行し、プロセッサをスパイクします。

修正: キューを削除します。Web アプリケーションを再起動します。NServiceBus が引き継ぎます。

編集:コメントに記載されているように、NServiceBus 3.x はデフォルトでインストーラーを起動しません。つまり、要求しない限り、キューは本番環境で自動的に作成されません。詳細については、インストーラーのドキュメント ページを参照してください。

Web アプリケーション (または NServiceBus.Host を使用していないその他の状況) では、流暢な構成の一部としてインストーラーを呼び出すことができます。NServiceBus のダウンロードに完全な例がありますが、ここに GitHub の関連ファイルへのリンクがあります

于 2012-11-28T18:20:39.517 に答える