![](/img/trans.png)
[英]Which namespace (IBM.WMQ vs. IBM.WMQAX) should be used in the .NET library for IBM MQ WebSphere (amqmdnet.dll)
[英]Trying to debug VS2010 C# code that uses IBM WMQ (amqmdnet.dll)
我正在使用IMB WMQ库连接到队列管理器。
这是我使用了很长时间的代码,它是由朋友在VS2005中创建的,我已更新为在VS2010中使用。 当我使用与LoadRunner工具集成来运行一些性能脚本时,它可以正常工作。 但是,当我尝试调试时,它返回以下错误:
{"Unable to load DLL '**amqxcs2.dll**': The handle is invalid. (Exception from HRESULT: 0x80070006 (E_HANDLE))"}
这与调试外部DLL有关,但是我没有找到解决方法。
我使用以下命令将dll注册到GAC:
gacutil /I "C:\Program Files\IBM\WebSphere MQ\bin\amqmdnet.dll"
当我尝试添加amqxcs2.dll时,它返回错误:
gacutil /I "C:\Program Files\IBM\WebSphere MQ\bin\amqxcs2.dll"
Failure adding assembly to the cache: The module was expected
to contain an assembly manifest.
我在Windows Server 2003上运行了VS2010 Ultimate。
在Loadrunner中运行代码时,我可以从队列中放入消息并从中获取消息,但无法调试。
这里也有类似的帖子 ,但是没有解决方案。
您为什么认为“确保库位于应用程序所需的位置”不是解决方案?
您需要在打算使用的计算机上正确安装正在使用的任何产品,或者通过手工复制必要的文件来纠正位置(并手动确定“正确的位置”)来欺骗自己的方式。SysInternals工具可能对跟踪应用程序尝试使用的文件)。
这可能是COM错误。 IBM程序集可能是本机dll,因此您不能在GAC中注册它,该GAC仅适用于.NET dll。 可以使用Regsvr32注册本机COM dll。 如果本机dll对另一个缺少的dll有依赖关系,也会发生此错误。 另请参阅了解Visual C ++应用程序的依赖关系,它提供了有关Dependency Walker工具的信息,该工具可用于计算本机dll的依赖关系。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.