1

MSRPCを使用して構築されたかなり標準的なクライアント/サーバーアプリケーションがあります。クライアントとサーバーの両方がC++で実装されています。クライアントはサーバーへのセッションを確立し、最終的にセッションを閉じる前に、一定期間サーバーに対して繰り返し呼び出しを行います。

ただし、定期的に、特に高負荷の条件下では、RPC例外がコード1754で表示されますRPC_S_NOTHING_TO_EXPORT

これはセッションの途中で発生するようです。ユーザーがしばらくログオンして正常に呼び出しを行った後、呼び出しの1つが不可解にこのエラーを返します。私たちが知る限り、サーバーは何かがうまくいかなかったという兆候を受け取りません-そしてそれは間違いなくクライアントが行った呼び出しを見ません。

エラーコードにも永続的な影響があるようです。クライアントに接続を再試行させることも機能しません。ただし、ユーザーが同じクライアントとサーバー間で同時にアクティブな複数のユーザーセッションを持っている場合、他の接続は影響を受けません。

本質的に、私は2つの質問があります。

  1. 誰かがRPC_S_NOTHING_TO_EXPORT意味を知っていますか?MSDNのドキュメントには次のように書かれてい"No interfaces have been exported."ます。この時点まで、セッションは同じ呼び出しの多数のインスタンスに対して正常に機能していました...

  2. 誰かが本当の問題を特定する方法について何かアイデアがありますか?:ネットワークトラフィックのキャプチャは、可能であれば避けたいものです。問題は散発的であるため、発生する前に数ギガバイトのトラフィックを通過する可能性があります。

4

1 に答える 1

1

ネットワーク トラフィックをキャプチャすることは、この問題に取り組む最善の方法の 1 つです。それができない場合は、クライアント プロセスをダンプして、WinDBG または Visual Studio でデバッグしていただけますか? 正常に動作している場合とエラー状態にある場合のダンプを比較してみてください。

于 2008-09-09T01:12:01.170 に答える