Ich verwende ZeroMQ mit Kombination von Clrzmq und libzmq DLL-Dateien.ZeroMQ-Kontext, der auf Windows Server 2012-Maschine nicht initialisiert
Ich habe diese Dateien in meinem Windows-Service-Projekt enthalten und es funktionierte gut in einfachen Windows-PC. Jetzt habe ich den Dienst auf den Windows Server 2012-Computer verschoben, auf dem ich den Dienst mit Administratorrechten installiert und versucht habe, den ZMQ-Server zu starten. Alle Versuche, den Server zu starten, werden mit einem Fehler unterschritten.
My-Code
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);
}
}
}
}
}
ERROR:
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
Was ich bisher versucht
- Ich habe installiert C++ redistrib nutzbares Paket.
- Ich habe deaktiviert Firewall und zusätzlichen Service exe inbound und outbound Regeln
- I .NET Framework 4.6.2
Haben Sie NetMQ versucht? ein Port von Zeromq zu C#, könnte einfacher sein. https://github.com/zeromq/netmq – somdoron