IIS中的用户代理值与我的日志文件中的值不一致

本文关键字:文件 不一致 日志 用户代理 IIS 我的 | 更新日期: 2023-09-27 18:09:39

我想在日志文件中记录用户代理信息。所以我使用了下面的代码:

System.Web.HttpContext.Current.Request.UserAgent;

它工作得很好,当我使用浏览器消费我的web服务(用户代理返回正确的值),但有时上面的代码不工作。例如,当我使用WCF测试客户端用户代理字符串在我的日志文件中为空,但在IIS日志文件中有这个值:Mozilla/4.0+(compatible;+MSIE+6.0;+MS+Web+Services+Client+Protocol+4.0.30319.34003)

我也试过这些代码:

    OperationContext context = OperationContext.Current;
HttpRequestMessageProperty httpRequest =
      context.IncomingMessageProperties["httpRequest"] as HttpRequestMessageProperty;
if (httpRequest != null)
{    
  string userAgentInfo = httpRequest.Headers["User-Agent"];
}  

string userAgent = WebOperationContext.Current.IncomingRequest.Headers["User-Agent"];

我想我错过了什么,但我不知道是什么。如果您能帮助我在日志文件中记录完整的用户代理信息,我真的很感激。谢谢你。

IIS中的用户代理值与我的日志文件中的值不一致

这是一堆乱七八糟的东西,不容易解码。

由于网络早期的一些脚本用来嗅探浏览器版本并拒绝不兼容的网站,许多浏览器开始报告一些疯狂的东西,只是为了绕过它。网景自称是IE,我想IE也自称是网景,这真是一团糟。再加上你可以在字符串中发送任何你想要的东西,所以它不能保证是正确的,即使字符串是有意义的