Я отлаживаю приложение ASP.NET MVC 2, работающее в .NET 4.0 (Windows 7), в настоящее время внутри Cassini, отладочного веб-сервера Visual Studio.
Все работало хорошо, когда я неожиданнобыли исключения в моем обработчике Application.EndRequest.Изучив эту проблему, я обнаружил, что причина в том, что Cassini вызывала EndRequest в другом потоке, чем BeginRequest (тогда переменная ThreadStatic, которая была установлена в BeginRequest и использовалась в обработчике EndRequest, была нулевой, поскольку в этом потоке BeginRequest никогда не былcall).
В чем может быть причина того, что Cassini может выполнить BeginRequest и EndRequest в разных потоках?
Я знаю, что причиной может быть директива страницы Async (см. Do ASP.NET всегда запрашивает BeginRequest и EndRequest в одном и том же потоке? , но у меня нет атрибута 'Async' в моих директивах Page).
Должна быть другая причина.
Спасибо!