2013-04-04 17 views
0

我在Windows操作系統上使用0mq和clr綁定 - 版本3.2.2。在一個特定的Windows 7 64位系統上,0mq在創建新的上下文時總是失敗。我最初以爲是有一些東西需要與Windows服務/ IIS,但即使是zeromq:在創建新的上下文時,「外部組件已引發異常」 - 在一個特定系統上

錯誤消息下面一個簡單的控制檯應用程序失敗

Assertion failed: Connection timed out (..\..\..\signaler.cpp:260) 
External component has thrown an exception. 

最後一個錯誤代碼(我從C#調用GetLastError函數)是(其被連接tiemout)

代碼下面

var ctx = new Context(1); 

我已經檢查日Ë以下鏈接和嘗試的建議,但沒有運氣
http://grokbase.com/t/zeromq/zeromq-dev/126jmgg0aq/sehexception-when-calling-zmq-init-from-clrzmq https://github.com/zeromq/clrzmq/issues/81
Calling Win32 CreateEvent() fails from an IIS 7.5 web application

我曾嘗試以下

  • 使用dependencychecker,並確保所有被引用的DLL文件都存在
  • 有保證的VC++ 2010運行庫已安裝
  • 運行控制檯應用程序的帳戶具有管理員權限並且I al所以給出了明確的權限來創建用戶帳戶管理中的全局對象(其中一個建議)

我對此錯誤感到困惑。 0mq到目前爲止效果很好,我想將它部署在更大規模上。現在這個錯誤給了我同樣的想法。任何幫助將不勝感激

回答

0

它在我看來像你的應用程序沒有找到適當的ZMQ DLL。有幾件事要檢查:

  1. 請確保libzmq.dll與您的exe文件位於相同的目錄中。
  2. 確保您知道libzmq.dll是32位還是64位。
  3. 確保您已經在C#項目文件(x86或x64,不是AnyCPU)中明確指定了體系結構,並且所選的體系結構與您正在使用的libzmq.dll文件的體系結構相匹配。
+0

Thanx Scott。我們有32位和64位的libzmq和clrzmq的獨立版本,我相信這是用64位編譯的(所有的0mq模塊都是64位)。但會再次交叉檢查並更新 – 2013-04-05 11:41:16

+0

Scott。我已經檢查了與32位和64位版本相關的所有內容,並且二進制文件都很好。它只是在該系統上失敗。相同的代碼(實時和測試應用程序)適用於所有其他系統(包括32位和64位)。有沒有其他的方法來調試這個問題? – 2013-04-06 16:20:04

+0

當我回答時,我沒有意識到你在一臺特定的機器上遇到了問題(與所有64位機器相反)。不幸的是,我沒有任何其他想法。 – scott 2013-04-09 22:15:29

相關問題