2008-09-05 3 views
1

MS RPCを使用して構築されたかなり標準的なクライアント/サーバーアプリケーションがあります。クライアントとサーバーはどちらもC++で実装されています。クライアントはサーバーとのセッションを確立し、一定期間に亘ってセッションを繰り返し呼び出してから最後にセッションを終了します。RPC例外の意味/原因 'インターフェイスがエクスポートされていません。'

しかし、特に負荷が重い状況では、RPC例外がコード1754:RPC_S_NOTHING_TO_EXPORTで表示されています。

セッションの途中で発生するようです。ユーザーはしばらくの間ログオンして成功した呼び出しを行い、呼び出しの1つがわかりにくくこのエラーを返します。私たちが知る限り、サーバーは何かが間違っているという通知を受けません - クライアントが行った呼び出しは間違いなく表示されます。

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

、私は2つの質問がある:

  1. 誰が何RPC_S_NOTHING_TO_EXPORT手段を知っていますか? MSDNのドキュメントは単にこう言います:"No interfaces have been exported." ...ああ?セッションは、この時点までに同じ呼び出しの多数のインスタンスに対してうまくいきました...

  2. 実際の問題を特定する方法はありますか? :ネットワークトラフィックをキャプチャすることは、できるだけ避けたいことです。問題が散発的に発生し、オカレンスに実行される前に複数ギガバイトのトラフィックを通過する可能性があるからです。

答えて

1

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

関連する問題