| 
					
				 | 
			
			
				@@ -49,37 +49,41 @@ namespace Masuit.MyBlogs.Core.Controllers 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// 503 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// </summary> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /// <returns></returns> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        [Route("ServiceUnavailable"), ResponseCache(Duration = 36000)] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        [Route("ServiceUnavailable")] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public ActionResult ServiceUnavailable() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var feature = HttpContext.Features.Get<IExceptionHandlerPathFeature>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            string err; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var req = HttpContext.Request; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var ip = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            switch (feature.Error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (feature != null) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                case DbUpdateConcurrencyException ex: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    err = $"异常源:{ex.Source},异常类型:{ex.GetType().Name},\n请求路径:{req.Scheme}://{req.Host}{HttpUtility.UrlDecode(req.Path)},客户端用户代理:{req.Headers["User-Agent"]},客户端IP:{ip}\t{ex.InnerException?.Message}\t"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    LogManager.Error(err, ex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                case DbUpdateException ex: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    err = $"异常源:{ex.Source},异常类型:{ex.GetType().Name},\n请求路径:{req.Scheme}://{req.Host}{HttpUtility.UrlDecode(req.Path)},客户端用户代理:{req.Headers["User-Agent"]},客户端IP:{ip}\t{ex?.InnerException?.Message}\t"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    LogManager.Error(err, ex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                case AggregateException ex: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    LogManager.Debug("↓↓↓" + ex.Message + "↓↓↓"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ex.Handle(e => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        LogManager.Error($"异常源:{e.Source},异常类型:{e.GetType().Name},\n请求路径:{req.Scheme}://{req.Host}{HttpUtility.UrlDecode(req.Path)},客户端用户代理:{req.Headers["User-Agent"]},客户端IP:{ip}\t", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                case NotFoundException _: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return View("Index"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    LogManager.Error($"异常源:{feature.Error.Source},异常类型:{feature.Error.GetType().Name},\n请求路径:{req.Scheme}://{req.Host}{HttpUtility.UrlDecode(req.Path)},客户端用户代理:{req.Headers["User-Agent"]},客户端IP:{ip}\t", feature.Error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                string err; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var req = HttpContext.Request; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var ip = HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                switch (feature.Error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    case DbUpdateConcurrencyException ex: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        err = $"异常源:{ex.Source},异常类型:{ex.GetType().Name},\n请求路径:{req.Scheme}://{req.Host}{HttpUtility.UrlDecode(req.Path)},客户端用户代理:{req.Headers["User-Agent"]},客户端IP:{ip}\t{ex.InnerException?.Message}\t"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LogManager.Error(err, ex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    case DbUpdateException ex: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        err = $"异常源:{ex.Source},异常类型:{ex.GetType().Name},\n请求路径:{req.Scheme}://{req.Host}{HttpUtility.UrlDecode(req.Path)},客户端用户代理:{req.Headers["User-Agent"]},客户端IP:{ip}\t{ex?.InnerException?.Message}\t"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LogManager.Error(err, ex); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    case AggregateException ex: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LogManager.Debug("↓↓↓" + ex.Message + "↓↓↓"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        ex.Handle(e => 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            LogManager.Error($"异常源:{e.Source},异常类型:{e.GetType().Name},\n请求路径:{req.Scheme}://{req.Host}{HttpUtility.UrlDecode(req.Path)},客户端用户代理:{req.Headers["User-Agent"]},客户端IP:{ip}\t", e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    case NotFoundException _: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        return View("Index"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        LogManager.Error($"异常源:{feature.Error.Source},异常类型:{feature.Error.GetType().Name},\n请求路径:{req.Scheme}://{req.Host}{HttpUtility.UrlDecode(req.Path)},客户端用户代理:{req.Headers["User-Agent"]},客户端IP:{ip}\t", feature.Error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (Request.Method.ToLower().Equals("get")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Response.StatusCode = 503; 
			 |