![](/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.