私はかなり奇妙で非常に特殊な DCOM 関連の問題に直面しており、誰かがそれに遭遇して解決したことを願っています。
Windows 7 マシン (W7 と呼びます) の EXE サーバーで COM オブジェクトをインスタンス化しようとしています。クライアントは Windows XP マシン (WXP と呼びます) 上にあります。WXP では、ログイン ユーザーはドメイン ユーザーです。W7 では、ユーザーはローカル ユーザーです。すべての DCOM 権限、認証、およびアカウント権限を (私の知る限り) 正しく設定しました。関連するファイアウォールはありません。
私が得たのは、COM EXEサーバープロセスがW7で開始され、期待するユーザー名で開始されたということだけですが、WinMain関数に到達することさえできず、ハングしたままになり、強制終了しない限り死ぬことはありません. リモート デバッガー (Visual Studio 2010) を接続すると、プロセスがデッドロックしている可能性があることが警告されます。プロセスを中断すると、メッセージ キュー ループ (GetMessage/Dispatch) で停止します。
クライアントは (一見有効な) ポインターを取得しますが、それを使用しようとすると、E_ACCESSDENIED が発生します。
上記のシナリオから何かが変更された場合、COM オブジェクトのインスタンス化は成功し、オブジェクトは正しく動作します。
答えが見つかる可能性はわずかですが、ヒントは大歓迎です。
ありがとう。