|
@@ -49,37 +49,41 @@ namespace Masuit.MyBlogs.Core.Controllers
|
|
|
/// 503
|
|
/// 503
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
/// <returns></returns>
|
|
|
- [Route("ServiceUnavailable"), ResponseCache(Duration = 36000)]
|
|
|
|
|
|
|
+ [Route("ServiceUnavailable")]
|
|
|
public ActionResult ServiceUnavailable()
|
|
public ActionResult ServiceUnavailable()
|
|
|
{
|
|
{
|
|
|
var feature = HttpContext.Features.Get<IExceptionHandlerPathFeature>();
|
|
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"))
|
|
if (Request.Method.ToLower().Equals("get"))
|
|
|
{
|
|
{
|
|
|
Response.StatusCode = 503;
|
|
Response.StatusCode = 503;
|