Я согласен с ck относительно использования службы и очереди сообщений, но есть несколько альтернатив.
Один из них - использовать службу, которая опрашивает базу данных через регулярные промежутки времени.Это позволяет избежать очереди сообщений за счет более высокой загрузки процессора (служба будет выполнять много ненужных вызовов базы данных).
Вы также можете сделать это непосредственно в базе данных, используя триггер базы данных или запланированное задание.в базе данных.Последние версии SQL Server поддерживают запуск хранимых процедур, написанных на C # или Vb.Net, так что вы, вероятно, можете использовать большую часть существующего кода здесь.
Наконец, вы можете перейти к простому решению, при котором вы отправляете электронную почту наотдельный поток в вашем приложении asp.net.Таким образом вы избавляетесь от необходимости использовать приложение-службу и можете использовать свой код более или менее так, как он есть сегодня.