我有一个中央 Web 应用程序,它在用户 PC 上启动虹膜扫描设备。我们的客户安装我们的扫描仪驱动程序,以便可以跟踪从他们的站点进出的人员。
- 用户登录网站并单击扫描链接。
- 有一个本地安装的 WebAPI 服务,用于处理来自网站的调用。
- WebAPI 服务激活启动扫描过程的 COM 组件。
- 一旦用户完成了虹膜扫描,它就会返回一个事件处理程序并返回结果。
这就是问题所在。为了完成扫描,必须有对 COM 对象的实时引用,直到完成为止。但是,一旦扫描开始,代码将继续执行并从本地服务调用返回。那时,上下文丢失了,很可能内存被标记为清理中断进程。
锁定 WebAPI 服务并在内部等待一些响应可能会锁定并导致 Web 应用程序崩溃,这似乎是个坏主意。
我如何构建它以稳健的方式处理流程,同时避免任何应用程序被锁定?
我正在考虑创建一个在后台持续运行的 Windows 服务,其中为每个扫描请求加载一个 AppDomain。当我的网络应用程序通过网络服务轮询状态更改时,请求可以处理。