Type d'initialiseur pour IBM.WMQ.MQQueueManager déclenche une exception
Lorsque je me connecte WebSphere MQ à l'aide de C# sans installer MQ client et le serveur, j'obtiens l'exception The type initializer for 'IBM.WMQ.MQQueueManager' threw an exception
. J'ai ajouter la référence des deux MQ dll, amqmdnet.dll
et amqmdxcs.dll
de MQ server, mais il ne fonctionne pas. Comment puis-je me connecter à MQ sans installer MQ serveur ou le client? Merci!!!!
OriginalL'auteur zhiyuan_ | 2012-04-18
Vous devez vous connecter pour publier un commentaire.
Je ne recommandent pas l'utilisation de MQ client bibliothèques sans les installer. L'Installation s'assure que tous les fichiers binaires requis sont installés et enregistrés avec le GAC. Ajout de la référence à amqmdxcs n'est pas nécessaire. Juste une référence à amqmdnet est assez.
Il est donc préférable d'installer le client MQ et exécuter votre application.
IBM ne fournit pas un pris en charge configuration plus petits que le client installer. Si cela est important pour vous, s'il vous plaît aller à ibm.com/developerworks/rfe et soumettre une Demande Pour l'Amélioration de poser pour une petite empreinte, prise en charge, client package d'installation. D'autres personnes peuvent ensuite voter sur l'exigence et IBM va voir qu'il est apprécié (ou pas) et de les hiérarchiser en conséquence. (J'espère que cela va être très populaire, sur la base des commentaires ici et sur d'autres forums, mais personne n'a encore entré dans la RFE pour le coup d'envoi.)
Merci beaucoup!Cette solution, mais elle peut être besoin d'une longue période de temps.
OriginalL'auteur Shashi
Oui vous le pouvez, vous aurez besoin de 2 DLL: "amqmdnet.dll" et "amqmdxcs.dll"
Vous pouvez alors soit:
Noter, cependant: Pour l'option 2, vous devez vous assurer que le chemin d'accès du registre "HKEY_LOCAL_MACHINE\SOFTWARE\IBM\WebSphere MQ\Installation" existe.
Si elle n'existe pas et les DLL ne sont pas dans le GAC, vous obtiendrez les exceptions suivantes:
Système.TypeInitializationException: L'initialiseur de type pour 'IBM.WMQ.MQQueueManager' a déclenché une exception. --> Système.TypeInitializationException: L'initialiseur de type pour 'IBM.WMQ.CommonServices' a déclenché une exception. --> Système.NullReferenceException: la référence d'Objet n'est pas définie à une instance d'un objet.
C'est parce que, lorsqu'il n'est pas le cas, le 'amqmdxcs.dll" qui contient les 'IBM.WMQ.CommonServices' vais essayer de lire les sous-clés à partir du chemin d'accès du registre de remplir certaines variables, mais comme il n'existe pas, ce sera un échec.
Pour moi, cette approche fonctionne sans avoir besoin de toutes les valeurs dans la partie "Installation" clé.
OriginalL'auteur Stitch10925
voir aussi:
.net à l'aide d'IBM MQ sans MQ installation du client
fondamentalement, prenez les 2 dll à partir de la WMQ bin: amqmdnet.dll & amqmdxcs.dll
Que j'ai trouvé pour WMQ 7.5 vous devez vous inscrire sur les 2 dll dans le GAC pour qu'il fonctionne correctement. vous avez besoin d'admin permissions pour les enregistrer.
la référence des bibliothèques dans votre projet pour utiliser le natif de WMQ objets
OriginalL'auteur Herre Kuijpers