Предотвратить IIS от уничтожения задачи до ее завершения

Я создаю библиотеку журналов, в которой все хранится в таблице Azure. Запись в эту таблицу, очевидно, занимает много времени (никогда не более 1 секунды, но это все еще слишком много, чтобы заставить пользователя ждать), поэтому метод Log возвращает экземпляр LogResult, а здесь класс

public class LogResult
{
    public string Id { get; set; }
    public Task LoggingTask { get; set; }

    public LogResult(string id, Task task)
    {
        Id = id;
        LoggingTask = task;
    }
}

И вот как заканчивается метод Log

return new LogResult(id, Task.Factory.StartNew(() => 
    DoLogInAzure(account, id, exception, request))
);

Предоставить вызывающему абоненту возможность ожидания его завершения (например, если это консольное приложение). Проблема, с которой я сталкиваюсь, заключается в том, что IISshouldn't дождаться его, прежде чем вернуть пользователю ответ ... и если я не жду его, IIS не получитalways выполнить задание Идея состоит в том, чтобы показать пользователю сообщение & quot; ... Если вы обращаетесь к нам, обязательно укажите номер вашей проблемы, XXX & quot; и не заставляйте его ждать, пока запись в журнале не будет записана.

Есть ли способ заставить IIS ждать, пока задача не завершится, даже после того, как она вернула ответ? Я думаю, что мне, возможно, понадобится кодировать службу Windows, которая принимает запрос асинхронно, но похоже, что нужно просто добавить запись в журнал ... особенно, если я могу заставить IIS ждать его.

Спасибо за любые идеи!

Ответы на вопрос(4)

Ваш ответ на вопрос