Я предполагаю, что Вы выполняете IIS? Существует знать ошибка с версиями IIS меньше чем 7 при попытке и установить cookie и заголовок местоположения в том же запросе.
Я предполагаю, что вы можете породить код, который должен ждать в новом потоке. Это приведет к тому, что обработчик событий не будет блокировать поток, в котором возникают события, чтобы он мог вызвать следующий обработчик событий в строке. (Пример C # 3.5)
private void MyPotentiallyLongRunningEventHandler(object sender, SomeEventArgs e)
{
ThreadPool.QueueUserWorkItem((state) => {
// do something that potentially takes time
// do something to update state somewhere with the new data
});
}
Просто создайте поток в обработчике событий и выполните всю логику там. Лучше использовать пул потоков, чтобы количество потоков было ограниченным.