簡體   English   中英

嘗試調試使用IBM WMQ(amqmdnet.dll)的VS2010 C#代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM