I am writing an application where messages about data changes through an API are published over a RabbitMQ message bus. The messages are consumed by a SignalR hub and pushed to subscribed clients.
Now I find messages in my Eventlog that start with:
Exception: System.Threading.ThreadAbortException: Thread was being aborted.
I found SO questions and answers like: Why am i getting "Thread was being aborted" in asp.net? and What exactly is Appdomain recycling
But that raises the question, if applications running in an AppDomain in the application pool is recycled upon inactivity, how can SignalR maintain a connection to subscribed clients? Why does it work for SignalR to run in an IIS app pool but not a RabbitMQ consumer?
SignalR client libraries provided by the SignalR might have a default behavior of reconnecting once loosing connection (the JS one definitely does).
So having an Pool Recycle would just make your client reconnect to your server, getting again messages as before interruption.