首页 新闻 会员 周边

WebApi 项目部署到 IIS 上面获取不到 Header值(.net core 2.1)

0
悬赏园豆:50 [已解决问题] 解决于 2018-08-25 16:11

请问一下,我本地用Postman调试数据接口,可以获取到指定的header,但是部署到服务器IIS上面之后就获取不到Header数据,是IIS需要配置什么?还是说项目配置什么?

context.HttpContext.Request.GetHeaderValue("Cb_Agent")

这个是我获取header的代码。

 服务器日志:

 

本地调试代码:

y_kami的主页 y_kami | 初学一级 | 园豆:159
提问于:2018-08-25 13:36

是asp.net还是asp.net core?

dudu 5年前

@dudu: .net core 2.1

y_kami 5年前
< >
分享
最佳答案
0

我这里在 IIS 中测试正常

HttpContext.Request.Headers.TryGetValue("Cb_Agent", out var agent);
收获园豆:50
dudu | 高人七级 |园豆:31007 | 2018-08-25 15:07

我在本地测试也是正常的,上面有我本地测试代码的截图,但是我发布到服务器IIS上之后,log日志值是没有的啊。请问是我哪里配置出了问题吗??

y_kami | 园豆:159 (初学一级) | 2018-08-25 15:09

@y_kami: GetHeaderValue 方法是如何实现的?

dudu | 园豆:31007 (高人七级) | 2018-08-25 15:12

@dudu: 

    public static string GetHeaderValue(this HttpRequest request, string name)
        {
            if (request == null)
                throw new ArgumentNullException("request");

            StringValues val = new StringValues("");
            if (request.Headers != null)
            {
                request.Headers.TryGetValue(name, out val);
            }
            return val.ToString();
        }
y_kami | 园豆:159 (初学一级) | 2018-08-25 15:14

@y_kami: 本地测试时日志记录是正常的?

dudu | 园豆:31007 (高人七级) | 2018-08-25 15:15

@dudu: 对是正常的,这个是我本地的日志

y_kami | 园豆:159 (初学一级) | 2018-08-25 15:18

@y_kami: 但日志记录中的类不一样,一个是 WebApiAuthentication ,一个是 ApiBaseController

dudu | 园豆:31007 (高人七级) | 2018-08-25 15:21

@dudu: 我有两个日志测试

 

 

一个是在过滤器,一个是在控制器,因为一直接收不数据,我就把过滤器的代码注释了,在控制器里面写log,看看控制器里面是否能成功,但是测试还是没有。刚刚那个日志是我本地把过滤器代码取消之后打的日志

 

 

y_kami | 园豆:159 (初学一级) | 2018-08-25 15:25

@y_kami: 试试将请求头都写到日志看看情况

foreach(var header in HttpContext.Request.Headers)
{
    _logger.LogInformation($"{header.Key}: {header.Value}");
}
dudu | 园豆:31007 (高人七级) | 2018-08-25 15:43

@dudu: 

日志里面没有我传的数据...

y_kami | 园豆:159 (初学一级) | 2018-08-25 16:04

发现问题了,原来是我参数名称的问题,加了一个下滑线。
我改成cccAgent日志记录就出来了。

 

谢谢您。

y_kami | 园豆:159 (初学一级) | 2018-08-25 16:10

@y_kami: 服务器上的IIS过滤了带下划线的请求头

dudu | 园豆:31007 (高人七级) | 2018-08-25 16:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册