Forráskód Böngészése

Added DisposeResponseStream method to BaseHandler

LukePulverenti Luke Pulverenti luke pulverenti 13 éve
szülő
commit
dc90725d61
1 módosított fájl, 15 hozzáadás és 5 törlés
  1. 15 5
      MediaBrowser.Common/Net/Handlers/BaseHandler.cs

+ 15 - 5
MediaBrowser.Common/Net/Handlers/BaseHandler.cs

@@ -13,6 +13,8 @@ namespace MediaBrowser.Common.Net.Handlers
         /// </summary>
         public IDictionary<string, string> Headers = new Dictionary<string, string>();
 
+        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();
+        }
     }
 }