C# ASP.NET核心错误处理错误消息
我开始研究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
{
"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,你可以单独问你的具体问题。