Звучит так, как будто вы хотите запустить задачу на каком-то интервале (30-60 секунд).
Хитрость заключается в том, чтобы ASP.NET открывал и выполнял итерацию в кеше с заданным интервалом (30 или 60 секунд), при этом входящий веб-запрос не вызывал этого. Некоторые обсуждения этой статьи: Простые фоновые задачи с ASP.NET .
При таком подходе я предложу 2 варианта хранения:
1 .. Для решения только для ASP.NET и IIS вы можете записать в кэш приложений ASP.NET .
List<Log> myLogs = new List<Log>();
myLogs.Add(new Log{ Text = "foo"});
Cache["MyLogs"] = myLogs;
Рассмотрим эту проблему, хотя. Кэш приложений ASP.NET не является надежным хранилищем. Что происходит, когда ваше приложение умирает, или IIS сбрасывается, или аппарат теряет питание? Вас волнует, что было в кеше?
2 .. Встроить базу данных SQL Compact в свое приложение. Напишите свои журналы там. Объедините этот механизм хранения с Простыми фоновыми задачами с ASP.NET .
IMO, я бы полностью согласился с вариантом MSMQ или SQL Server Service Broker, предложенным в другом ответе. Это гарантирует долговечность для вас. Надеюсь, у вас есть полный контроль над этим веб-сервером для использования этих компонентов. Один требует установки / включения / защиты компонентов Windows, а другой - специфической функции SQL Server.