Impedir o IIS de matar uma tarefa antes que ela termine

Eu estou construindo uma biblioteca de log que armazena tudo em uma tabela do Azure. Escrever para essa tabela, obviamente, leva muito tempo (nunca mais que 1 segundo, mas ainda é muito para fazer o usuário esperar), então o método Log retorna uma instância LogResult, aqui está a classe

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

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

E aqui está como o método Log termina

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

Para dar ao chamador a opção de aguardar a conclusão (se for um aplicativo de console, por exemplo). O problema que estou enfrentando é que o IISnão deveria esperar por isso antes de retornar o usuário a resposta ... e se eu não esperar por isso, o IIS nãosempre executar a tarefa. A idéia é mostrar ao usuário uma mensagem "... Se você entrar em contato conosco, não deixe de mencionar o número do seu problema, XXX" e não o faça esperar até que a entrada do registro seja gravada.

Existe alguma maneira de forçar o IIS para esperar até que a tarefa seja concluída, mesmo depois que ele retornou a resposta? Eu estou pensando que talvez precise codificar um serviço do Windows que leva a solicitação de forma assíncrona, mas parece muito trabalho apenas adicionar uma entrada de log ... especialmente se eu puder forçar o IIS a esperar por ela.

Obrigado por todas as ideias!

questionAnswers(4)

yourAnswerToTheQuestion