Few days ago, one of our application was crashing IIS application pool because of unhandled exception. After researched we figured out the case of it was orphaned MS DTC transaction.
When multiple connections are operating over one MS DTC transaction, this problem sometime shows up. As many connection are working none of them try to roll back the MS DTC transaction, this creates orphaned connection, which crashes IIS application pool.
You can figure out if there is orphaned connection or not in your application from following quick script. If there are orphaned connection it will show up in result otherwise script will return no results.
SELECT DISTINCT(req_transactionUOW) FROM sys.syslockinfo WHERE req_spid = -2
We fixed this issue using Hotfix provided by Microsoft.
Reference : Pinal Dave (https://blog.sqlauthority.com)