Почему traceid отправляется в автоматических 400 ответах в ASP.NET Ядро 2.2

#asp.net-core #asp.net-core-2.2

#asp.net-core #asp.net-core-2.2

Вопрос:

ASP.NET Ядро 2.2 отправляет автоматические 400 ответов для действий, которые не позволяют выполнить привязку модели и проверку.

Результат выглядит так:

 {
  "type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
  "title": "Bad Request",
  "status": 400,
  "traceId": "xyz:xyz"
}
  

Что такое traceId и почему оно отправляется клиенту?

Комментарии:

1. Идентификатором трассировки должно быть значение HttpContext.TraceIdentifier , которое используется для уникальной идентификации запроса в таких вещах, как журналы. Короче говоря, вы должны иметь возможность посмотреть значение traceId в своих журналах, чтобы потенциально узнать больше информации о том, почему это был «плохой запрос». Это, конечно, предполагает, что вы вообще регистрируетесь, и регистрируетесь хорошо, и это также приносит пользу только вам как разработчику, а не конечному клиенту. Но они могут поделиться этим с вами, например, если вы обращаетесь с жалобой на неисправность.

Ответ №1:

Из комментария @ ChrisPratt выше:

Идентификатором трассировки должно быть значение HttpContext.TraceIdentifier , которое используется для уникальной идентификации запроса в таких вещах, как журналы. Короче говоря, вы должны иметь возможность посмотреть значение traceId в своих журналах, чтобы потенциально узнать больше информации о том, почему это был «плохой запрос». Это, конечно, предполагает, что вы вообще регистрируетесь, и регистрируетесь хорошо, и это также приносит пользу только вам как разработчику, а не конечному клиенту. Но они могут поделиться этим с вами, например, если вы обращаетесь с жалобой на неисправность.