C# 从虹膜设备读取数据时,如何保持状态?

C# 从虹膜设备读取数据时,如何保持状态?,c#,asp.net-web-api,synchronous,iris-recognition,C#,Asp.net Web Api,Synchronous,Iris Recognition,我有一个中央网络应用程序,它在用户PC上启动一个虹膜扫描设备。我们的客户安装了我们的扫描仪驱动程序,这样就可以跟踪从他们的网站来来去去的人 用户登录网站并单击扫描链接 有一个本地安装的WebAPI服务,用于从网站中输入调用 WebAPI服务激活启动扫描过程的COM组件 一旦用户完成虹膜扫描,它将返回事件处理程序并显示结果 这就是问题所在。为了完成扫描,必须有对COM对象的实时引用,直到扫描完成。但是,一旦扫描开始,代码将继续并从本地服务调用返回。此时,上下文将丢失,并且可能会标记内存以进行清理,

我有一个中央网络应用程序,它在用户PC上启动一个虹膜扫描设备。我们的客户安装了我们的扫描仪驱动程序,这样就可以跟踪从他们的网站来来去去的人

  • 用户登录网站并单击扫描链接
  • 有一个本地安装的WebAPI服务,用于从网站中输入调用
  • WebAPI服务激活启动扫描过程的COM组件
  • 一旦用户完成虹膜扫描,它将返回事件处理程序并显示结果 这就是问题所在。为了完成扫描,必须有对COM对象的实时引用,直到扫描完成。但是,一旦扫描开始,代码将继续并从本地服务调用返回。此时,上下文将丢失,并且可能会标记内存以进行清理,从而中断进程

    锁定WebAPI服务并等待内部响应似乎不是一个好主意,这可能会导致web应用程序被锁定并崩溃

    我如何构建它,以稳健的方式处理流程,同时避免任何应用程序被锁定


    我想创建一个windows服务,在后台持续运行,每次扫描请求都会加载一个AppDomain。请求可以在我的web应用程序通过web服务轮询状态更改时处理。

    我认为您只需要将
    COM
    组件对象包装到一个
    Singleton
    类中,在该类中它只实例化一次。(有关Singleton的更多信息,请阅读)


    另外,如果您选择windows服务选项(我认为这是一个非常好的主意),我建议使用
    SignlaR
    在客户端和服务器之间推送消息

    如果我能在windows服务和我的web应用程序之间使用信号器,那将是完美的。我必须检查你的链接。然而,我过去曾与信号员发生过锁车问题。祝你好运!