private async Task HandleExceptionAsync(HttpContext context, Exception exception, ILoggerService logger) { var response = context.Response; BaseCustomException customException = exception as BaseCustomException; Int32 ErrorCode = (int)HttpStatusCode.InternalServerError; // response.Redirect("/Home/Error"); var file = new FileInfo(@"wwwroot\response.html"); byte[] buffer; if (file.Exists) { response.StatusCode = ErrorCode;// (int)HttpStatusCode.OK; response.ContentType = "text/html"; string readfile = await File.ReadAllTextAsync(file.FullName); readfile = readfile.Replace("{ErrorCode}", ErrorCode.ToString()); readfile = readfile.Replace("{Message}", exception.Message); readfile = readfile.Replace("{Source}", exception.Source); readfile = readfile.Replace("{Detail}", exception.StackTrace); buffer = Encoding.ASCII.GetBytes(readfile); // File.ReadAllBytes(file.FullName); context.Response.ContentLength = buffer.Length; await logger.AddAsync(new Sphix.DataModels.Logger.LoggerDataModel { ErrorCode = ErrorCode.ToString(), Message = exception.Message, Source = exception.Source, Detail = exception.StackTrace }); using (var stream = context.Response.Body) { await stream.WriteAsync(buffer, 0, buffer.Length); await stream.FlushAsync(); } readfile = null; } else { response.ContentType = "application/json"; response.StatusCode = ErrorCode; await response.WriteAsync(JsonConvert.SerializeObject(new CustomErrorResponse { Message = exception.Message, Description = "error code" + ErrorCode.ToString() })); } }