x-requestid如何填充?

时间:2018-12-04 20:36:06

标签: c# asp.net-core

请参见下面的代码,该代码与我正在查看的某些代码相似:

 [HttpGet]
        public IActionResult Create([FromHeader(Name = "x-requestid")] string requestId)
        {
            return View();
        }

        [HttpPost]
        public IActionResult Create(Person person, [FromHeader(Name = "x-requestid")] string requestId)
        {
            if (ModelState.IsValid)
            {
                string test = "got here";
            }
            return View();
        }

requestId始终为null。如何填充requestId?

最近两个小时,我读了很多问题,例如这个:What is the X-REQUEST-ID http header?。另一个建议安装以下Nuget软件包的问题的回答者:

Microsoft.ApplicationInsights.ASPNetCore

但是,这没有什么区别。

2 个答案:

答案 0 :(得分:0)

通常,“ x- *”标头为non-standard ones

在Application Insights中可能恰巧使用了该特定请求,以唯一地标识一个请求,但不太可能将请求发送到包含该请求的服务器。

无论哪个客户端向您的服务器发送请求,都必须显式添加该标头,以便您在此处接收它;它不是任何标准HTTP请求的一部分。

答案 1 :(得分:0)

您必须请求名称为“ x-requestid”的标头,但应将其称为“ X-Request-ID”。只需尝试:

[HttpGet]
public IActionResult Get([FromHeader(Name = "x-request-id")] string requestId)
{
    return View();
}