我正在使用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