public async void ProcessServerError(HttpContext context, Exception exception, int statusCode = 500) { _errorBuilder.Clean(); _errorBuilder.WithMessage(statusCode, exception.Message, context.Request.Path, exception.Source); var errorNode = _errorBuilder.Build(); context.Response.Clear(); context.Response.StatusCode = statusCode; var headerAccept = context.Request.Headers["Accept"].ToString().ToLower(); if (headerAccept == "application/xml") { context.Response.ContentType = "application/problem+xml"; var xmlResult = SerializeXMLResponse(errorNode); await context.Response.WriteAsync(xmlResult, System.Text.Encoding.UTF8); } else { context.Response.ContentType = "application/problem+json"; var jsonResult = JsonConvert.SerializeObject(errorNode); await context.Response.WriteAsync(jsonResult, System.Text.Encoding.UTF8); } }