我有一个中央Web应用程序,用于启动用户PC上的虹膜扫描设备。我们的客户安装了我们的扫描仪驱动程序,以便可以跟踪来自其站点的人员。
这是问题所在。为了完成扫描,必须完成对COM对象的实时引用,直到完成。但是,一旦扫描开始,代码将继续运行并从本地服务调用返回。到那时,上下文丢失了,并且可能标记了内存以进行清理,从而破坏了进程。
锁定WebAPI服务并在内部等待某些响应可能会锁定并导致Web应用崩溃,这似乎是一个坏主意。
我该如何设计它以健壮的方式处理流程,同时避免任何应用程序被锁定?
我当时正在考虑创建一个在后台持续运行的Windows服务,其中会为每个扫描请求加载一个AppDomain。当我的Web应用通过Web服务轮询状态更改时,请求可能会得到处理。
答案 0 :(得分:0)
我认为您只需要将COM
组件对象包装在Singleton
类中,该对象仅被实例化一次。 (阅读this了解有关Singleton的更多信息。
如果您使用Windows服务选项(我认为这是一个很好的主意),我建议使用SignlaR
在客户端和服务器之间推送消息。 Windows service as a signalr client