浏览代码

better progress display

Luke Pulverenti 12 年之前
父节点
当前提交
f1dba04767
共有 1 个文件被更改,包括 38 次插入49 次删除
  1. 38 49
      MediaBrowser.Server.Implementations/HttpServer/HttpServer.cs

+ 38 - 49
MediaBrowser.Server.Implementations/HttpServer/HttpServer.cs

@@ -284,56 +284,45 @@ namespace MediaBrowser.Server.Implementations.HttpServer
 
             RaiseReceiveWebRequest(context);
 
-            try
-            {
-                ProcessRequest(context);
-            }
-            catch (InvalidOperationException ex)
-            {
-                HandleException(context.Response, ex, 422);
-
-                throw;
-            }
-            catch (ResourceNotFoundException ex)
-            {
-                HandleException(context.Response, ex, 404);
-
-                throw;
-            }
-            catch (FileNotFoundException ex)
-            {
-                HandleException(context.Response, ex, 404);
-
-                throw;
-            }
-            catch (DirectoryNotFoundException ex)
-            {
-                HandleException(context.Response, ex, 404);
-
-                throw;
-            }
-            catch (UnauthorizedAccessException ex)
-            {
-                HandleException(context.Response, ex, 401);
-
-                throw;
-            }
-            catch (ArgumentException ex)
-            {
-                HandleException(context.Response, ex, 400);
-
-                throw;
-            }
-            catch (Exception ex)
+            await Task.Run(() =>
             {
-                HandleException(context.Response, ex, 500);
-
-                throw;
-            }
-            finally
-            {
-                context.Response.Close();
-            }
+                try
+                {
+                    ProcessRequest(context);
+                }
+                catch (InvalidOperationException ex)
+                {
+                    HandleException(context.Response, ex, 422);
+                }
+                catch (ResourceNotFoundException ex)
+                {
+                    HandleException(context.Response, ex, 404);
+                }
+                catch (FileNotFoundException ex)
+                {
+                    HandleException(context.Response, ex, 404);
+                }
+                catch (DirectoryNotFoundException ex)
+                {
+                    HandleException(context.Response, ex, 404);
+                }
+                catch (UnauthorizedAccessException ex)
+                {
+                    HandleException(context.Response, ex, 401);
+                }
+                catch (ArgumentException ex)
+                {
+                    HandleException(context.Response, ex, 400);
+                }
+                catch (Exception ex)
+                {
+                    HandleException(context.Response, ex, 500);
+                }
+                finally
+                {
+                    context.Response.Close();
+                }
+            }).ConfigureAwait(false);
         }
 
         /// <summary>