我正在使用ZeroMQ与clrzmq和libzmq dll文件的组合。ZeroMQ上下文未在Windows Server 2012机器上初始化
我已将这些文件包含在我的Windows服务项目中,并且它在简单的Windows PC中工作正常。现在,我将服务移至Windows Server 2012计算机,并在其中安装了具有管理员权限的服务并尝试启动ZMQ服务器。所有尝试启动服务器都失败,出现以下错误。
我的代码
public void InitializeServer()
{
using (var context = ZmqContext.Create())
{
using (var socket = context.CreateSocket(SocketType.REP))
{
HelperMethods.WriteLog(string.Format("server started at: {0}", serverAddress));
socket.Bind(serverAddress);
while (true)
{
lock (_lock)
{
try
{
var rcvdMsg = socket.Receive(Encoding.UTF8);
HelperMethods.WriteLog("New event received. ");
var replyMsg = "Acknowledged event.";
HelperMethods.WriteLog(replyMsg);
socket.Send(replyMsg, Encoding.UTF8);
HelperMethods.WriteLog("=====================================================");
}
catch (Exception ex)
{
HelperMethods.WriteLog("InitializeServer(): " + ex.Message + " | Stack Trace: " + ex.StackTrace);
}
}
}
}
}
错误:
The type initializer for 'ZeroMQ.Interop.LibZmq' threw an exception. | at ZeroMQ.Interop.ContextProxy.Initialize() in C:\clrzmq\zeromq-clrzmq-v3.0.0-beta1-52-g0d83a1e\zeromq-clrzmq-0d83a1e\src\ZeroMQ\Interop\ContextProxy.cs:line 28 at ZeroMQ.ZmqContext.Create() in C:\clrzmq\zeromq-clrzmq-v3.0.0-beta1-52-g0d83a1e\zeromq-clrzmq-0d83a1e\src\ZeroMQ\ZmqContext.cs:line 78
我至今尝试过
- 我已经安装了C++ redistrib可用包。
- 我有禁用防火墙和增值服务的exe入站和出站规则
- 我已经安装了.NET Framework 4.6.2
您是否尝试过NetMQ?从zeromq到c#的一个端口可能会更简单。 https://github.com/zeromq/netmq – somdoron