C# 即使服务运行正常,也无法使用基于云的windows服务从生物识别设备获取员工的考勤数据

C# 即使服务运行正常,也无法使用基于云的windows服务从生物识别设备获取员工的考勤数据,c#,sdk,windows-services,cloud,biometrics,C#,Sdk,Windows Services,Cloud,Biometrics,这是窗口服务代码的一小部分,用于从云中的生物识别设备获取实时考勤数据。服务正在工作,但无法从设备获取数据。此服务正在从设备获取数据并存储在项目文件夹中,生成.log文件。但在设备上打卡时,我什么也没有得到。我对app.config文件感到困惑。在我获得的制造商sdk中,有本地主机(127.0.0.1:8080)作为服务器(但他们说这是基于云的sdk)。在这种情况下,服务器列表应该是什么?请帮助我。我对这个WebSocketServer是全新的 private void webSocketServ

这是窗口服务代码的一小部分,用于从云中的生物识别设备获取实时考勤数据。服务正在工作,但无法从设备获取数据。此服务正在从设备获取数据并存储在项目文件夹中,生成.log文件。但在设备上打卡时,我什么也没有得到。我对app.config文件感到困惑。在我获得的制造商sdk中,有本地主机(127.0.0.1:8080)作为服务器(但他们说这是基于云的sdk)。在这种情况下,服务器列表应该是什么?请帮助我。我对这个WebSocketServer是全新的

private void webSocketServer_NewMessageReceived(WebSocketSession会话,字符串消息)此方法用于注册新设备,但在我将卡穿孔到设备时不会触发此方法。我不会在此方法中粘贴所有代码

使用SuperWebSocket;
使用SuperSocket.SocketBase;
公共类WebSocketLoader
{
私有静态WebSocketServer WebSocketServer;
公共静态字典注册设备;
专用WebSocketLoader(IWorkItem服务器)
{
var wsServer=作为WebSocketServer的服务器;
webSocketServer=wsServer;
}
公共静态WebSocketSession GetSessionByID(字符串序号)
{
如果(_registereddedevices.ContainsKey(序号))
{
返回webSocketServer.GetAppSessionByID(_registeredDevices[sn]);
}
其他的
返回null;
}
公共静态无效设置(IWorkItem服务器)
{
var webSocketLoader=新的webSocketLoader(服务器);
webSocketLoader.AddNewMessageReceived();
webSocketLoader.AddNewSessionConnected();
webSocketLoader.AddSessionClosed();
_registeredDevices=新字典();
_registeredDevices.Clear();
}
public void AddNewMessageReceived()
{
webSocketServer.NewMessageReceived+=新会话处理程序(webSocketServer_NewMessageReceived);
}
public void AddNewSessionConnected()
{
webSocketServer.NewSessionConnected+=新会话处理程序(webSocketServer_NewSessionConnected);
}
私有void webSocketServer_NewSessionConnected(WebSocketSession会话)
{
WriteLine(webSocketServer.GetAllSessions().Count());
接收(“NewConnected[“+session.RemoteEndPoint+”]”);
}
私有void webSocketServer_会话已关闭(WebSocketSession会话,关闭原因)
{
LogHelper.Receive(“关闭[”+session.RemoteEndPoint+”],原因:“+Reason”);
}
私有void webSocketServer_NewMessageReceived(WebSocketSession会话,字符串消息)
{
WriteLine(webSocketServer.GetAllSessions().Count());
LogHelper.Receive(“MessageReceived[“+session.RemoteEndPoint+”],Message:“+Message”);
}
}
App.config文件包含以下行

127.0.0.1适用于本地主机。您需要更新生物识别机器中的有效IP和端口。如果您使用该IP和端口,您的代码可能会工作。请确保机器连接在同一网络中

一般来说,生物识别机器不能与公共IP相关联。因此,无法通过云应用程序与安装在远程位置的机器进行TCP/IP通信


对于来自生物识别机器的云通信,可以使用web api支持的生物识别机器。

127.0.0.1适用于本地主机。您需要更新生物识别机器中的有效IP和端口。如果您使用该IP和端口,您的代码可以工作。确保机器连接在同一网络中

一般来说,生物识别机器不能与公共IP相关联。因此,无法通过云应用程序与安装在远程位置的机器进行TCP/IP通信

对于来自生物识别机器的云通信,可以使用web api支持的生物识别机器

 using SuperWebSocket;
 using SuperSocket.SocketBase;        
 public class WebSocketLoader
    {
        private static WebSocketServer webSocketServer;

        public static Dictionary<string, string> _registeredDevices;


        private WebSocketLoader(IWorkItem server)
        {
            var wsServer = server as WebSocketServer;
            webSocketServer = wsServer;
        }
        public static WebSocketSession GetSessionByID(string sn)
        {
            if (_registeredDevices.ContainsKey(sn))
            {
                return  webSocketServer.GetAppSessionByID(_registeredDevices[sn]);
            }
            else
                return null;
        }

        public static void Setup(IWorkItem server)
        {
            var webSocketLoader = new WebSocketLoader(server);
            webSocketLoader.AddNewMessageReceived();
            webSocketLoader.AddNewSessionConnected();
            webSocketLoader.AddSessionClosed();
            _registeredDevices = new Dictionary<string, string>();
            _registeredDevices.Clear();
        }
        public void AddNewMessageReceived()
        {
            webSocketServer.NewMessageReceived += new SessionHandler<WebSocketSession, string>(webSocketServer_NewMessageReceived);
        }
        public void AddNewSessionConnected()
        {
            webSocketServer.NewSessionConnected += new SessionHandler<WebSocketSession>(webSocketServer_NewSessionConnected);
        }

        private void webSocketServer_NewSessionConnected(WebSocketSession session)
        {
            Console.WriteLine(webSocketServer.GetAllSessions().Count());
            LogHelper.Receive("NewConnected[" + session.RemoteEndPoint + "]");
        }

        private void webSocketServer_SessionClosed(WebSocketSession session, CloseReason reason)
        {
            LogHelper.Receive("Closed[" + session.RemoteEndPoint + "],Reason:" + reason);

        }

        private void webSocketServer_NewMessageReceived(WebSocketSession session, string message)
        {
            Console.WriteLine(webSocketServer.GetAllSessions().Count());
            LogHelper.Receive("MessageReceived[" + session.RemoteEndPoint + "],Message:" + message);
        }
    }