IIS 和我的日志文件中的用户代理值不同

user agent value in IIS and my Log file is diffrent

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

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

当我使用浏览器使用我的 Web 服务(用户代理 returns 正确的值)时,它工作正常,但有时上面的代码不起作用。 例如,当我使用 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"];

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

一团乱麻,不容易破译。

由于网络早期的一些脚本曾经嗅探浏览器版本并拒绝不兼容的网站,因此许多浏览器开始报告疯狂的东西只是为了绕过它。 Netscape 声称是 IE,我认为 IE 声称是 netscape,而且它一团糟。此外,它可以在该字符串中发送任何你想要的内容,因此即使字符串确实有意义,也不能保证它是正确的。