問題タブ [com+]
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.
windows - 「従来の」COMとCOM+の違い(コンポーネントサービス内)
「従来の」方法とは、DLLをレジストリに登録することを意味します。
mmc-> Component Services-> COM + Applicationsに移動し、.tlb
ファイルを追加して設定する別の方法があるようです。
両方の方法をサポートするCOMライブラリがあります。インストールすると、レジストリにCOMコンポーネントとして登録され、正常に動作します。ただし、Component Servicesメソッドを使用してファイルを追加する.tlb
と、動作が異なるように見え、エラーが発生し始めます。
マーシャリングとプロセス間オブジェクト転送に関係があるのではないかと思います。(申し訳ありませんが、私は本当にCOM領域の初心者です)
誰かが私の理解を明確にするための良いリソースを教えてもらえますか?
vb6 - HKEY_CLASSES_ROOTにアクセスしないリモートDLL登録
最新のファイルをプルダウンしてCOMコンポーネントを登録することにより、起動時に自動的に更新されるレガシーVB6アプリケーションがあります。これは、別のマシンのCOM +に登録されているローカル(zippy32)ActiveX COMコンポーネントとリモート(clireg32)ActiveXCOMコンポーネントの両方で機能します。
新しい要件により、セキュリティ上の理由からHKEY_LOCAL_MACHINE(HKLM)への書き込みが妨げられています。これは、zippy32およびclireg32を呼び出すときにデフォルトで明らかに発生することです。
RegOverridePredefKey Windows APIメソッドを使用して、HKEY_CURRENT_USER \ Software \ Classes(HKCU)の下にローカルCOMコンポーネントを登録する方法を考え出しました。これは、レジストリへの挿入をHKCUの場所にリダイレクトすることで機能します。次に、COMコンポーネントがインスタンス化されると、WindowsはHKLMでコンポーネント情報を探す前に、まずHKCUを調べます。これは、zippy32が行っていることを置き換えます。
現時点で発生している問題は、clireg32を使用してVBR / TLBを登録しようとしたときに、この登録プロセスによってHKEY_LOACL_MACHINEに登録キーも追加されることです。
clireg32.exeをHKEY_CURRENT_USERである登録コンポーネントにリダイレクトする方法はありますか?セキュリティアクセスが制限されているクライアントマシンにこれらのCOM+コンポーネントを登録できるようにする他の方法はありますか?
現時点での唯一の解決策は、レジストリに登録情報を手動で書き込むことですが、これは理想的ではなく、主要な問題になります。
c# - ファイナライザーで ServicedComponent が破棄されない
回答が必要な質問 :
クライアント側 ServicedComponent のファイナライザーは、ServicedComponent.DisposeObject または Dispose を呼び出しますか?
クライアントでの使用に関連して、com サーバーでどのように破棄 (メモリの解放) が発生する必要がありますか?
基本的に - メモリが解放されていないため、COM サーバーのプロセス サイズ (メモリ) の 2 ギガ制限に達しています - 明示的に Dispose を呼び出すか、クライアントで using ステートメントを使用するソリューションですか?
com - 登録されたCOMクラスの最大長はどれくらいですか?
オブジェクトがWindowsレジストリに追加されると、次のように表示されます。
COMに登録しようとすると、名前空間とクラス名が長すぎるという問題が発生したことを覚えているようです。WindowsまたはCOM+でのクラスの登録に最大長の制限はありますか?
c# - C#-COM +コンポーネントのプロパティを取得しますか?
サーバー(Windows Server 2003)にCOM+コンポーネントがあります。このコンポーネントのプロパティ(使用されているコンストラクター文字列など)をプログラムで取得する方法はありますか?
[管理ツール]->[コンポーネントサービス]->[COM+アプリケーション]に移動し、コンポーネントを右クリックすると、これらのプロパティを取得してファイルに書き込むことができます。
これを行う方法はありますか?
前もって感謝します。
c# - プロセス外で実行されている C# ServicedComponent が、1 台のマシンで File Not Found 例外を取得する
私は、プロセス外で実行し、x64 サーバーで x86 のみの COM コンポーネントをラップする、ばかばかしい単純な ServicedComponent (COM+ コンポーネント) を作成しました。私のテスト VM (Server 2008 R2) では正常に動作します。製品ボックスで、ファイルが見つからないという例外が発生します。
C:\Windows\Microsoft.NET\Framework\v2.0.50727>C:\Testapp.exe 指定されたファイルが見つかりません。(HRESULT からの例外: 0x80070002) System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal (Int32 errorCode、IntPtr errorInfo) で System.EnterpriseServices.Thunk.Proxy.CoCreateObject (型 serverType、ブール型 bQuerySCInfo、ブール型 & bIsAnotherProcess、文字列 & uri) で System. EnterpriseServices.ServicedComponentProxyAttribute.CreateInstance (型 serverType) System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK (型 serverType、Object [] props、Boolean bNewObj) で、D:\TFS の Testapp.Program.Main (String [] args) で\Testapp\Program.cs:11行目
Program.cs の 11 行目で、ラップする COM タイプのオブジェクトをインスタンス化します。
繰り返しますが、これは x64 Win 7 開発マシンと x64 テスト VM で正常に動作します。コンポーネント x86 をビルドし、32 ビット コマンド プロンプトから regsvcs の 32 ビット バージョンに登録しています。
一体何を間違えているのか、忘れているのか?
windows - Windowsの将来のバージョンでのCOM+サポートに関するMicrosoftの計画に関する信頼できる情報はどこにありますか?
多くの競合する優先順位を持つ大規模なWebアプリケーションを見るとき、私が直面していることの1つは、多数のCOM+コンポーネントです。ある時点で、これらのものを他のテクノロジ(WCF、.NETなど)で再設計する必要があります。私がこの取り組みを優先する方法の一部は、「Microsoftがサポートを停止するずっと前に低い」ということです。
私は、Windowsの将来のバージョンでのCOM +サポートの現在の計画に関して、Microsoftからの確かな公式情報を見つけるのに時間がかかっています。
どんなガイダンスも大いに助長されます。
com+ - COM+/.NET EnterpriseServices を実際に使用している人はどれくらいいるでしょうか?
COM+ と EnterpriseServices について学んでいます。私はMSDNで COM+ サービスの完全なリストに出会い、それらすべてを読みました。
この膨大な量は私を畏敬の念を起こさせました。表面的には、他の開発プラットフォームにはない非常に高度なシステムのように見えます。プーリング、同期、リモーティングなどの概念は非常に便利で、その方法が標準化されています。
一方、COM+/EnterpriseServices に関するネット上の言及は驚くほど少ない。ここにタイトルを SO に入力すると、ほとんどすべての関連する質問に 0 の回答があります (これがその 1 つにならないことを願っています)。これらの機能はすべて、実際には主に MS が IIS を実装するために使用しているように感じます。しかし、彼らはいくつかのマーケティングの話題のためにそれを公開しました.
これらのサービスを実際に使用した経験はありますか? それらは単に過度に設計された厄介なものですか、それともリアルタイムセーバーになった経験はありますか?
vb6 - 記入するコンポーネントメソッドにレコードセットを渡す
3つのレコードセットをメソッドに渡して、すべて同じデータベース接続でデータを入力しようとしているという奇妙な問題が発生しています。以下のコードを実行するときにカスタムログ情報を確認すると、メソッドに渡されたレコードセットをメソッド内のローカル変数に割り当てるときに、タイプの不一致エラーが発生していることがわかります。
したがって、mthodが呼び出されると、以下がログに記録されます。
7/15/2010 10:59:47AM-GetALLRecordSetsを開始します7/15/201010:59:47AM-GetALLRecordSetsRSの初期化を開始します
奇妙なことに、この同じコードは、aspコードが同一で、コンポーネントdllが同一であるベータサーバーで機能します。
この問題の原因について何か考えはありますか?
従来のASPコード:
VB6コンポーネントコード:
excel - Excelをインストールせずにサーバー内のExcelファイルにアクセスする
Excelとの間でデータをやり取りするためのライブラリを作成しました。
私のマシンで実行するために、COM+コンソールでアクセス許可を変更しました。
このコンポーネントをオンラインサーバーにアップロードすることに興味がありますが、Excelをインストールしていません。
ExcelをインストールせずにCOM+にExcelを登録する方法はありますか?
前もって感謝します。
よろしくお願いします。
ホセ