C# ASP.NET核心错误处理错误消息

C# ASP.NET核心错误处理错误消息,c#,asp.net-core,webapi,C#,Asp.net Core,Webapi,我开始研究ASP.NET核心错误处理,我注意到我得到了一个格式错误 { "errors": {}, "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1", "title": "One or more validation errors occurred.", "status": 4

我开始研究ASP.NET核心错误处理,我注意到我得到了一个格式错误

{
    "errors": {},
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
    "title": "One or more validation errors occurred.",
    "status": 400,
    "traceId": "|caeb2316-47fb93bd8a17bc0a."
}
我正在尝试获取更详细的错误消息,但无法删除此消息

我只是按照指示去做,但错误总是存在的


如何摆脱这种格式的错误消息?

使用以下代码,您可以创建自定义错误响应或自定义问题详细信息:

services.AddControllers()
 .ConfigureApiBehaviorOptions(o =>
 {
     o.InvalidModelStateResponseFactory = context =>
     {
         var problemsDetailsFactory = context.HttpContext.RequestServices
             .GetRequiredService<ProblemDetailsFactory>();
         var problemDetails = problemsDetailsFactory.CreateValidationProblemDetails(
             context.HttpContext, 
             context.ModelState);
         problemDetails.Detail = "Custom Details";
         problemDetails.Instance = context.HttpContext.Request.Path;
         problemDetails.Type = "https://tools.etf............";
         //problemDetails.Status = StatusCodes.Status422UnprocessableEntity;
         problemDetails.Status = StatusCodes.Status400BadRequest;
         problemDetails.Title = "One or more errors on input occured";
         return new BadRequestObjectResult(problemDetails)
         {
             //ContentTypes= {"application/custom+json"}
         };
     };
 });
services.AddControllers()
.ConfigureApiBehaviorOptions(o=>
{
o、 InvalidModelStateResponseFactory=上下文=>
{
var problemsDetailsFactory=context.HttpContext.RequestServices
.GetRequiredService();
var problemDetails=problemsDetailsFactory.CreateValidationProblemDetails(
context.HttpContext,
上下文(ModelState);
problemDetails.Detail=“自定义详细信息”;
problemDetails.Instance=context.HttpContext.Request.Path;
problemDetails.Type=”https://tools.etf............";
//problemDetails.Status=StatusCodes.Status422不可处理实体;
problemDetails.Status=StatusCodes.Status400BadRequest;
problemDetails.Title=“发生了一个或多个输入错误”;
返回新的BadRequestObjectResult(problemDetails)
{
//ContentTypes={“应用程序/自定义+json”}
};
};
});

此响应是最新的。以这种格式检索错误是一件好事。您希望响应包含哪些更多信息?通常,如果您得到“发生了一个或多个验证错误”,则
errors
属性应包含所有单个错误。我希望收到一条原始系统错误消息。如何在开发阶段删除此格式并尝试查找引发此错误消息的问题“查找引发此错误消息的问题”–这是一个模型验证问题。所有信息都在响应中。由于默认情况下,此ProblemDetails对象仅用于API控制器,因此您不希望导致基于HTML的响应,因为您的API客户端可能无法处理此问题。由于此错误消息未提供任何错误信息,因此我你甚至会问这个问题。没有详细解释或innerException的Validation错误非常模糊Hey Deepak。什么是problemsDetailFactory的实现?@silversk8terz,你可以单独问你的具体问题。