問題タブ [dcom]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2114 参照

.net - Marshal.GetActiveObject( class id here) を呼び出すと、エラー 800401E3 (操作が利用できません) の原因は何ですか?

一部の .NET コードが COM (実際には DCOM) オブジェクトの現在のインスタンスにアクセスしようとするシナリオがあります。

アクセスされるオブジェクトは、VB6 で開発されました。現在のインスタンスはリモート システムで利用可能で、VB6 コードから正しくアクセスできるようです。

クラス名を指定して を呼び出そうとするとMarshal.GetActiveObject、COMException がスローされ、エラー 800401E3 (操作を利用できません) が参照されます。

同じ .NET コードが、その DCOM コンポーネントをホストしているマシンで実行すると、正しく動作するように見えます。

この COMException が生成される理由を誰かが提案できますか?

0 投票する
2 に答える
2991 参照

c# - c# を使用して、既存のクライアントを壊さずに古い DCOM サーバーを再実装するにはどうすればよいですか?

昔、私は VC++ 7.x (Visual Studio 2003 および .Net 1.1) を使用して、ATL ライブラリを使用してアウトプロセス (つまり EXE) COM サーバーを作成しました。サーバーはマルチ スレッド アパートメント (MTA) モデルを使用し、DCOM 呼び出し (VB6 クライアント) によってアクティブ化されます。複数のクライアント要求は、最初の要求によって (COM インフラストラクチャによって自動的に) アクティブ化される単一のプロセスによって満たされます。

これは非常に複雑なコードであり、いくつかの変更を加える必要があります。残念ながら、私がビルドしたマシンはとうの昔になくなっており、VS 2003 を搭載した新しいマシンでプロジェクトをコンパイルすることさえできません。数年前、私はこのプロジェクトを VS 2005 に移行しようと考えましたが、 ATL ライブラリへの重大な変更があり、その努力を断念しました。

この古い VS 2003 C++ プロジェクトを構築するという現在の問題に取り組むのではなく、.NET でこのプロジェクトを書き直すことをいじっています。これにより、私の小さなショップ (もう C++ を扱っていません) でのメンテナンスが容易になります。ATL マクロと C++ イディオムは、私の記憶から消えて久しいので、そこに残しておきたいと思います。:-)

そのため、C#/VS2008 でこの書き直しを行うことがどれほど実現可能かを調査しています。.NET クラスを COM クライアントに公開できることは知っています。確かに、私は過去にいくつかの単純なものでそうしました。ただし、これははるかに複雑です。多くのことがわかりません:

  1. インターフェイスはすべて、クライアントによって使用されるタイプ ライブラリで定義されます (変更されないままにしておく必要があります)。既存のタイプ ライブラリに基づいて、これらのインターフェイスを実装する .NET サーバーを構築できると仮定してもよろしいですか?

  2. サーバーは、IDispatch から継承し、"dual" および "oleautomation" でマークされた多数のインターフェイスを実装します。例として:

    IDispatch メソッドを使用するクライアントはないと思いますが、interop によって生成された VTable が一致する必要があると思います。これを .NET サーバーからどのように公開しますか?

  3. コンポーネントを収容するプロジェクトの種類は? コンソール アプリケーション?

  4. EXE が相互運用ツールの 1 つに適切に登録されている場合、DCOM はおそらく EXE をアクティブにします。そうですか?インフラストラクチャは、C++/ATL サーバーの場合と同じように動作しますか?つまり、複数のクライアント要求にサービスを提供する単一の EXE がアクティブになりますか?

  5. (4) に関連して、このサーバーはマルチスレッド アパートメント モデルを使用しますか?

0 投票する
3 に答える
38615 参照

dcom - DCOMサーバーの登録に失敗しました

このエラーが発生します

ソース:DCOM
Event_ID:10010

「サーバー{6FC4FDAE-96C8-11D3-9F9C-005004053207}は、必要なタイムアウト内にDCOMに登録されませんでした。」

これは、ローカルシステムとして実行すると正常に動作するが、組み込みの管理者以外で実行すると失敗する特定のexe用です。非組み込みの管理者の下で実行するexeが必要です。

現在、Citrixを搭載したWin2k3マシンでこの問題が発生しています。

ただし、以前はXPマシンでもこの問題に直面していました。

問題を解決するためのヒントはありますか?

0 投票する
2 に答える
880 参照

com - COM から DCOM への移行

プロセス外の COM サーバー (ATL ベース) と、この COM サーバーからオブジェクトをインスタンス化する Java アプリを同じマシン上に持っています。

DCOM を有効にするには、さらに何が必要ですか? COM サーバーのみ、またはサーバーとクライアントで作業が必要ですか?

0 投票する
1 に答える
772 参照

com - COM+ に登録すると、Regsvr32 よりも少ないインターフェイスが公開されます

regsvr32 に登録して 32 ビットの COM ライブラリを使用していますが、すべて正常に動作します。64 ビット プロセスからアクセスする必要があるため、コンポーネント サービス管理ツールを使用して COM+ として登録しています。問題は、すべての COM インターフェイスが公開されていないように見えることです。この理由は何でしょうか?

0 投票する
1 に答える
1495 参照

excel - Excel内からRをフック - DCOM? R は Excel にアドインしますか?

過去に、DCOM 接続を使用して、Excel および Excel 内の VBA から R 関数を呼び出しました。新しいラップトップを手に入れたばかりで、Excel 用の R アドインのインストール ファイルを探していました。いたるところで参照されていますが、それらはすべて R (D)COM Server プロジェクトのホームページhttp://sunsite.univie.ac.at/rcomを指しています。その URL はしばらくダウンしています。別の方法で同じ機能を得る別の方法はありますか? 新しいプロジェクト ページはありますか?

Excel アドインなしで DCOM サーバーを使用しようとしたことはありません。その可能性はありますか?

0 投票する
2 に答える
188 参照

windows - クロスプラットフォーム COM 開発

COM は言語やプラットフォームに依存しない標準ですが、常に Windows での COM コンポーネントの開発に関する記事しか目にしません。真のクロスプラットフォーム アプリケーションを開発する方法について、ご意見をお聞かせください。

0 投票する
1 に答える
729 参照

windows-server-2008 - Windows Server 2008 上の SAP DCOM コネクタ

Windows Server 2008 で「古い」SAP DCOM コネクタを使用できるかどうかは誰にもわかりませんか?

SAP への DCOM 接続を使用する古い ASP Web ソリューションを、Windows 2000 Server から Windows 2008 Server に移行したいと考えています。

DCOM コネクタをインストールしようとすると、次のエラー メッセージが表示されます。

「セットアップは、お使いのコンピューターで ActivX(R) データ オブジェクト バージョン 2.5 以降を見つけることができませんでした....」

ado は C:\Program Files\Common Files\System\ado の下にあるため、これは奇妙です。

よろしくお願いいたします。

0 投票する
4 に答える
3446 参照

.net - .NETにDCOMに対応する実行可能なものはありますか?

.netにはWCFがあり、コードネームがIndigo(?)のときにCOMの代わりとして宣伝されていたと思いますが、実際には.NETアプリでの使用に適しており、C ++ / DCOMアプリケーションと同じ機能を提供しますか?

クライアントサーバーシステム上のDCOMアプリは苦痛になる可能性がありますが、とにかく他の問題があるWebサービスのような他のオプションと比較して非常に効率的だと思います。

では、WCFは(D)COMの真の後継者ですか、それとも異なる目的を持っていますか?

編集:私は特に分散アプリとリモートコントロールについて話しています-たとえば、サーバーはワークステーションでダイアログを起動させることができ、ワークステーションはサーバー上のメソッドを呼び出して応答を送信することができます、など。タイトルに「D」を追加しましたによると。