COM コンポーネントにアクセスするために、C# でコード化された WPFApplication があります。アプリから COM コンポーネントへの参照を追加しました。同じマシンにクライアント(私のアプリ)とサーバー(com)の両方がある場合、期待どおりに動作します。問題は、それらが異なるマシン上にある場合です。両方のマシンは同一です。つまり、Windows 7 OS を搭載しています。そして両方とも同じドメインにあります。以下のコードで com コンポーネントのインスタンスを作成しようとしましたが、エラーは発生しません。
IPDSIntf test;
string clsId = "85689616-277B-4E00-9A5E-19AD78E7E0E2";
var type = Type.GetTypeFromCLSID(new Guid(clsId), MachineName, true);
var COMObject = Activator.CreateInstance(type);
test = (IPDSIntf)COMObject;
COMで任意のメソッドを呼び出すと. test.Connect(clientId, errorCode)と言うと、「アクセスが拒否されました。(HRESULT からの例外: 0x80070005 (E_ACCESSDENIED))」。
多くのアクセス許可を設定し、サーバー マシンのユーザー アカウントに管理者権限を付与し、アカウントを 'Distributed COM Users' グループなどに追加しましたが、それでも同じ問題が発生します。すべてのタイプのユーザー (匿名、ネットワーク、全員...) に対して、サーバー コンピューターの COM セキュリティ オプションで、DCOMCNFG と、Google 検索を行ったときに見たすべてのものを介して、「ローカルおよびリモート」アクセスを許可しました。クライアントとサーバーの両方でファイアウォールがオフになっています。
試してみるオプションはありません。修正する時間がなくなり、すでに同じグーグルで4日間費やしています。しかし、運がありません。
もう 1 つ、DCOMCNFG に自分の COM が表示されないということは、登録されていないということですか? その理由は何でしょうか。マシン内のすべての COM コンポーネントがコンポーネント サービスに登録されると思います。私の問題と何らかの関係があるとは思えないので、これについても明確にする必要があります。
よろしくお願いします。