MQサーバーとクライアントをインストールせずにC#を使用してWebSphere MQに接続すると、例外The type initializer for 'IBM.WMQ.MQQueueManager' threw an exception
が発生します。 MQサーバから2つのMQ dll(amqmdnet.dll
とamqmdxcs.dll
)の参照を追加しますが、動作しません。 MQサーバーまたはクライアントをインストールせずにMQに接続するにはどうすればよいですか?ありがとうございました!IBM.WMQ.MQQueueManagerの初期化子が例外をスローする
答えて
MQクライアントライブラリをインストールせずに使用することはお勧めしません。インストールにより、必要なバイナリがすべてインストールされ、GACに登録されます。 amqmdxcsへの参照の追加は必須ではありません。 amqmdnetへの参照だけで十分です。
したがって、MQクライアントをインストールしてアプリケーションを実行することをお勧めします。
も参照してください。 .net using IBM MQ without full MQ client install
は、基本的には、WMQ binフォルダから2つのDLLつかむ:amqmdnet.dll & amqmdxcs.dll
を、私はあなたがGACで2つのDLLのを登録する必要がWMQ 7.5見つかりそれが正しく機能するようにします。あなたはそれらを登録するために管理者の迫害が必要です。 「amqmdnet.dll」と「amqmdxcs.dll」
次のことができます。
参照ネイティブWMQを使用するには、プロジェクト内のライブラリは
はいあなたは、あなたが以下の2 DLLのが必要になりますできるオブジェクトその後、次のいずれか
- はあなたがちょうどあなたのプロジェクトへの参照として追加することができ
- グローバルアセンブリキャッシュ(GAC)にこれらの2 DLLの登録
注:オプション2の場合、レジストリー・パス "HKEY_LOCAL_MACHINE¥SOFTWARE¥IBM¥WebSphere MQ¥Installation"が存在することを確認する必要があります。それは存在せず、DLLのあなたは、次の例外を取得しますGACにない場合
は:
System.TypeInitializationException:「IBM.WMQ.MQQueueManager」のタイプ初期化子が例外をスローしました。 - > System.TypeInitializationException: 'IBM.WMQ.CommonServices'の型初期化子が例外をスローしました。 - > System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。
これは、GACにない場合、 'IBM.WMQ.CommonServices'を含む 'amqmdxcs.dll'がレジストリパスからサブキーを読み込み、いくつかの変数を埋めるように試みるためですそれは存在しません、それは失敗します。
私にとっては、この方法は「インストール」キーに値を入力する必要はありません。
- 1. 'System.Web.Http.GlobalConfiguration'の型初期化子が例外をスローしました
- 2. 'LibSassNetProxy.SassCompilerProxy'の型初期化子が例外をスローしました
- 3. 「System.Web.UI.BaseParser」の型初期化子が例外をスローしました。
- 4. 'System.Management.Automation.Runspaces.InitialSessionState'の型初期化子が例外をスローしました
- 5. System.Data.Entity.MigrateDatabaseToLatestVersionの型初期化子が例外をスローしました
- 6. 'System.Management.MTAHelper'の型初期化子が例外
- 7. タイプ初期化子が例外
- 8. 'NameSpace.Settings'の型の初期化子が例外をスローしました
- 9. 'Microsoft.PointOfService.Management.Explorer'の型初期化子が例外をスローしました。 C#印刷POS
- 10. Android - 'SQLite.SQLiteConnection'の型初期化子が例外をスローしました。 ---> System.DllNotFoundException:e_sqlite3
- 11. REALM - System.TypeInitializationException: 'Realms.Realm'の型初期化子が例外をスローしました。 ; ---> System.DllNotFoundException
- 12. 'System.Data.Entity.Migrations.DbMigrationsConfiguration`1の型初期化子がOracle Databaseで例外をスローしました
- 13. 'Crypto'の型初期化器が例外をスローしました
- 14. 'Microsoft.WindowsAzure.ServiceRuntime.RoleEnvironment'の型初期化器が例外をスローしました
- 15. オブジェクト初期化子とプロパティは例外
- 16. エラー例外タイプ初期化子
- 17. 'System.Windows.Setter'の初期化で例外がスローされました
- 18. ビデオコールの初期化時に例外的にスローされるUnauthorizedAccessException
- 19. タイプの初期化例外
- 20. コンポーネントを初期化するとnull参照例外がスローされます
- 21. AVCaptureDeviceInput初期化例外
- 22. 例外をスローする可能性のある初期化の値
- 23. タイプ初期化子が例外 'DocuSign.eSign.Client.ApiClient' コールに
- 24. Xamarin.Android System.TypeInitializationException: 'ReactiveUI.ControlFetcherMixin'の型初期化器が例外をスローしました
- 25. 初期化子の初期化子
- 26. FFImageLoadingを初期化できません。例外がスローされました
- 27. vb.net「型初期化器が例外をスローしました」問題
- 28. のVisual Studio - - データベース更新できません - 「System.Data.Entity.Migrations.DbMigrationsConfiguration`1」のタイプ初期化子が例外をスローした
- 29. コンテキストの初期化時の例外 -
- 30. タイプの初期化は、例外
本当にありがとうございます!MQクライアントをインストールせずに新しいQMQueue()を実行するとTypeInitializationExceptionがスローされます。アプリを使用している各コンピュータがMQクライアントをインストールする必要がある場合、クライアントアプリケーションですそれは小さくない)、私はそれが便利で非効率的ではないと思う。多分もっと良い解決策があるかもしれません。 –
IBMは、クライアントのインストール全体より小さい*サポートされている*構成を提供していません。これが重要な場合は、https://www.ibm.com/developerworks/rfe/にアクセスして、実装面積の小さい、サポートされているクライアント・インストール・パッケージを求める拡張要求を提出してください。他の人々はその要件に投票することができ、IBMはそれが普及している(またはしていない)とそれに応じて優先順位を付けることを認識します。 (これは、ここや他のフォーラムのフィードバックに基づいて、これはかなり人気がありますが、誰もまだRFEに入っていません) –
ありがとうございます!これは解決ですが、長い時間が必要な場合があります。 –