В некоторых случаях я нашел, что могу вызвать конкретное проблематичное чередование вызовов к потенциально неориентированному на многопотоковое исполнение классу при помощи нескольких потоков, которые синхронизируются друг с другом, возможно, с использованием CountDownLatch или некоторого такого механизма параллелизма. Иногда это просто не работает однако, например, при попытке протестировать то, что происходит, если два потока находятся в том же методе одновременно.
Вот интересная статья (не знайте много об инструменте, хотя): http://today.java.net/pub/a/today/2003/08/06/multithreadedTests.html
Обновление: Я наткнулся на сообщение в блоге Рика Страла об этой и других проблемах со сжатием. Посмотреть здесь: http://www.west-wind.com/weblog/posts/2011/May/02/ASPNET-GZip-Encoding-Caveats
Его решение, которое кажется более надежным, состоит в том, чтобы поместить следующее в Global .asax.cs:
protected void Application_Error(object sender, EventArgs e)
{
// Remove any special filtering especially GZip filtering
Response.Filter = null;
}
Оригинальный ответ: I fixed this by applying the compression in OnResultExecuting instead of OnActionExecuting.