Я бы просто поместил что-то в событие application_start в global.asax
http://www.codetoad.com/asp.net_globalasax.asp
Ваше приложение по какой-то причине перезапустилось, и, согласно вашему описанию, оно должно будет очистить все сеансы из БД, независимо от того, происходит ли перезапуск IIS или перезапускается пул приложений и т. Д.
Вы не можете доверять приложению установить флаг, чтобы IIS сигнализировал о перезапуске в вашем событии application_end, потому что бывают ситуации, когда оно не срабатывает. Например, что произойдет, если сервер выйдет из строя или IIS будет уничтожен вне его контроля (taskkill).