Our environment is Remote Desktop using TSScan to pass through TWAIN information.
We have a single user who consistently gets locked completely up during TwainParams.GetFromScanner or during scanning itself.
We enabled the TwainParams.LogFile and waited for her to experience a lockup. Here is an excerpt from the log, and it basically repeats itself until we log her off the server:
9/18/2023 10:49:35 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:35 AM : IETW_MessageHook 9/18/2023 10:49:35 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:35 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:35 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:35 AM : IETW_MessageHook : end 9/18/2023 10:49:35 AM : IETW_ModalEventLoop : event.msg=$0113 9/18/2023 10:49:35 AM : IETW_MessageHook 9/18/2023 10:49:35 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:35 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:35 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:35 AM : IETW_MessageHook : end 9/18/2023 10:49:35 AM : IETW_ModalEventLoop : event.msg=$0113 9/18/2023 10:49:35 AM : IETW_MessageHook 9/18/2023 10:49:35 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:35 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:35 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:35 AM : IETW_MessageHook : end 9/18/2023 10:49:35 AM : IETW_ModalEventLoop : event.msg=$0113 9/18/2023 10:49:35 AM : IETW_MessageHook 9/18/2023 10:49:35 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:35 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:35 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:35 AM : IETW_MessageHook : end 9/18/2023 10:49:35 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:35 AM : IETW_MessageHook 9/18/2023 10:49:35 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:35 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:35 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:35 AM : IETW_MessageHook : end 9/18/2023 10:49:35 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:35 AM : IETW_MessageHook 9/18/2023 10:49:35 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:35 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:35 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:35 AM : IETW_MessageHook : end 9/18/2023 10:49:36 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:36 AM : IETW_MessageHook 9/18/2023 10:49:36 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:36 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:36 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:36 AM : IETW_MessageHook : end 9/18/2023 10:49:36 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:36 AM : IETW_MessageHook 9/18/2023 10:49:36 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:36 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:36 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:36 AM : IETW_MessageHook : end 9/18/2023 10:49:36 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:36 AM : IETW_MessageHook 9/18/2023 10:49:36 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:36 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:36 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:36 AM : IETW_MessageHook : end 9/18/2023 10:49:36 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:36 AM : IETW_MessageHook 9/18/2023 10:49:36 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:36 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:36 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:36 AM : IETW_MessageHook : end 9/18/2023 10:49:36 AM : IETW_ModalEventLoop : event.msg=$0113 9/18/2023 10:49:36 AM : IETW_MessageHook 9/18/2023 10:49:36 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:36 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:36 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:36 AM : IETW_MessageHook : end 9/18/2023 10:49:36 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:36 AM : IETW_MessageHook 9/18/2023 10:49:36 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:36 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:36 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:36 AM : IETW_MessageHook : end 9/18/2023 10:49:36 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:36 AM : IETW_MessageHook 9/18/2023 10:49:36 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:36 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:36 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:36 AM : IETW_MessageHook : end 9/18/2023 10:49:36 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:36 AM : IETW_MessageHook 9/18/2023 10:49:36 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:36 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:36 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:36 AM : IETW_MessageHook : end 9/18/2023 10:49:36 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:36 AM : IETW_MessageHook 9/18/2023 10:49:36 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:36 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:36 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:36 AM : IETW_MessageHook : end 9/18/2023 10:49:36 AM : IETW_ModalEventLoop : event.msg=$0200 9/18/2023 10:49:36 AM : IETW_MessageHook 9/18/2023 10:49:36 AM : IETW_MessageHook : state>=5 9/18/2023 10:49:36 AM : IETW_MessageHook : event.msg=$0000 9/18/2023 10:49:36 AM : IETW_MessageHook : MSG_NULL 9/18/2023 10:49:36 AM : IETW_MessageHook : end
I understand that there's many layers of technology on top of each here and the hope to find the exact problem is slim.
But is there any chance we can attach a timeout to TwainParams.GetFromScanner or .Acquire. So that if it gets stuck in an infinite loop like this, we can have a chance to fix the problem at the software level instead of completely killing her session. Similar to ConnectTimeout in HTTP.