Windows 7 zeromq:;外部组件引发了一个异常";在创建新上下文时-在一个特定系统上

Windows 7 zeromq:;外部组件引发了一个异常";在创建新上下文时-在一个特定系统上,windows-7,64-bit,zeromq,Windows 7,64 Bit,Zeromq,我在Windows操作系统上使用带有clr绑定(版本3.2.2)的0mq。在一个特定的Windows 7 64位系统上,0mq在创建新上下文时总是失败。我最初认为它与windows服务/IIS有关,但即使对于一个简单的控制台应用程序,它也失败了 下面是错误消息 Assertion failed: Connection timed out (..\..\..\signaler.cpp:260) External component has thrown an exception. 最后一个错误代

我在Windows操作系统上使用带有clr绑定(版本3.2.2)的0mq。在一个特定的Windows 7 64位系统上,0mq在创建新上下文时总是失败。我最初认为它与windows服务/IIS有关,但即使对于一个简单的控制台应用程序,它也失败了

下面是错误消息

Assertion failed: Connection timed out (..\..\..\signaler.cpp:260)
External component has thrown an exception.
最后一个错误代码(我从C#调用GetLastError)是10060(这是连接tiemout)

代码如下

var ctx = new Context(1);
我查看了以下链接并尝试了建议,但没有成功

我试过以下方法

  • 使用dependencychecker并确保所有引用的DLL都存在
  • 确保已安装VC++2010运行时
  • 运行console应用程序的帐户具有管理员权限,我还授予了在用户帐户管理中创建全局对象的显式权限(建议之一)

我被这只虫子弄糊涂了。到目前为止,0mq工作得很好,我想在更大范围内部署它。现在这个错误让我重新思考这个问题。任何帮助都将不胜感激

在我看来,您的应用程序没有找到合适的ZMQ DLL。有几件事需要检查:

  • 确保libzmq.dll与exe位于同一目录中
  • 确保您知道libzmq.dll是32位还是64位
  • 确保在C#项目文件(x86或x64,而不是任何CPU)中明确指定了体系结构,并且选择的体系结构与正在使用的libzmq.dll文件的体系结构匹配

  • 桑克斯·斯科特。我们有32位和64位的libzmq和clrzmq的不同版本,我确信这是用64位编译的(所有的0mq模块都是64位的)。但将再次交叉检查并更新Cott。我已经检查了所有与32位和64位版本相关的内容,二进制文件都很好。它只是在那个系统上失败了。相同的代码(实时和测试应用程序)适用于所有其他系统(32位和64位)。有没有其他方法来调试这个问题?当我回答时,我没有意识到您在一台特定的机器上遇到了问题(与所有64位机器相反)。不幸的是,我没有其他的想法给你。