我们计划为Zkteco SDK中提供的方法开发ASP.Net Web服务。
其中一项Web服务是连接到设备。调用“ Connect_Net(string IPAdd,int Port)”方法后,连接成功,并且在该方法中,我们注册了一些事件,如下所示:-
public bool Connect_Net(string IPAdd, int Port)
{
if (objCZKEM.Connect_Net(IPAdd, Port))
{
//65535, 32767
if (objCZKEM.RegEvent(1, 32767))
{
// [ Register your events here ]
// [ Go through the _IZKEMEvents_Event class for a complete list of events
objCZKEM.OnConnected += ObjCZKEM_OnConnected;
objCZKEM.OnDisConnected += objCZKEM_OnDisConnected;
//objCZKEM.OnEnrollFinger += ObjCZKEM_OnEnrollFinger;
objCZKEM.OnEnrollFingerEx += new _IZKEMEvents_OnEnrollFingerExEventHandler(ObjCZKEM_OnEnrollFingerEx);
objCZKEM.OnNewUser += ObjCZKEM_OnNewUser;
objCZKEM.OnFinger += ObjCZKEM_OnFinger;
//this.objCZKEM.OnVerify += new zkemkeeper._IZKEMEvents_OnVerifyEventHandler(ObjCZKEM_OnVerify);
objCZKEM.OnAttTransactionEx += new _IZKEMEvents_OnAttTransactionExEventHandler(zkemClient_OnAttTransactionEx);
}
return true;
}
return false;
}
但是在连接之后,这些事件(OnEnrollFinger,On Clock-In等。)不会在ASP.NET Web服务中被调用。
类似的侦听器在Windows窗体应用程序中工作正常。
请问您如何解决此问题的建议?是否应该在后台线程中注册上述事件?如果可以,那么该怎么办?。
谢谢
答案 0 :(得分:1)
就我而言,我是在Windows窗体应用程序中完成的,然后将数据传递到Web API