Вы вообще почитайте про время жизни процесса в asp.net. Дело в том, что полагаться на исполнение каких-либо фоновых задач в приложении, которое IIS может в любой момент перезапустить, я бы не стал. Если вам необходимо серверное приложение, выполняющееся независимо от веб-морды, лучше писать его как отдельное приложение и размещать на сервере отдельной задачей.