diff --git a/MediaBrowser.Common/Net/Handlers/BaseHandler.cs b/MediaBrowser.Common/Net/Handlers/BaseHandler.cs index a63759708a..51d56719d9 100644 --- a/MediaBrowser.Common/Net/Handlers/BaseHandler.cs +++ b/MediaBrowser.Common/Net/Handlers/BaseHandler.cs @@ -13,6 +13,8 @@ namespace MediaBrowser.Common.Net.Handlers /// public IDictionary Headers = new Dictionary(); + private Stream CompressedStream { get; set; } + public virtual bool UseChunkedEncoding { get @@ -54,7 +56,7 @@ namespace MediaBrowser.Common.Net.Handlers if (!IsAsyncHandler) { - s.Dispose(); + DisposeResponseStream(); } }; } @@ -127,10 +129,9 @@ namespace MediaBrowser.Common.Net.Handlers { if (CompressResponse) { - using (DeflateStream compressedStream = new DeflateStream(stream, CompressionLevel.Fastest, false)) - { - WriteResponseToOutputStream(compressedStream); - } + CompressedStream = new DeflateStream(stream, CompressionLevel.Fastest, false); + + WriteResponseToOutputStream(CompressedStream); } else { @@ -140,5 +141,14 @@ namespace MediaBrowser.Common.Net.Handlers protected abstract void WriteResponseToOutputStream(Stream stream); + protected void DisposeResponseStream() + { + if (CompressedStream != null) + { + CompressedStream.Dispose(); + } + + RequestContext.Response.OutputStream.Dispose(); + } } } \ No newline at end of file