.net core 使用Middleware中间件处理异常信息
作者:互联网
1、中间件(Middleware)拦截所有的异常并返回给调用者
public class ExceptionHandler { private readonly RequestDelegate _next; public ExceptionHandler(RequestDelegate next) { _next = next; } public async Task Invoke(HttpContext context) { try { await _next.Invoke(context); } catch (Exception ex) { await HandleExceptionAsync(context, ex); } } private async Task HandleExceptionAsync(HttpContext context, Exception exception) { var response = context.Response; response.ContentType = "application/json"; response.StatusCode = (int)HttpStatusCode.InternalServerError; await response.WriteAsync(JsonConvert.SerializeObject(new { // customize as you need error = new { message = exception.Message, exception = exception.GetType().Name } })); } }
2、在Startup.cs中Configure方法中配置
public void Configure(IApplicationBuilder app, IHostingEnvironment env, Microsoft.Extensions.Logging.ILoggerFactory loggerFactory) { loggerFactory.AddNLog(); env.ConfigureNLog(Path.Combine(AppContext.BaseDirectory, "nlog.config")); if (env.IsDevelopment()) app.UseDeveloperExceptionPage(); else app.UseMiddleware<ExceptionHandler>(); app.UseMvc(); }TRANSLATE with x English TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back
标签:core,exception,Middleware,中间件,next,public,context,app,response 来源: https://www.cnblogs.com/zwbsoft/p/16151818.html