IIS7默认情况下是否记录请求查询字符串?

时间:2013-11-12 00:13:35

标签: logging iis-7 query-string

我们的分析引擎会读取IIS日志,我想知道在默认的IIS7设置中是否包含查询字符串。

例如,如果用户请求http://mysite.com/page?to=otherpage,日志会包含http://mysite.com/page?to=otherpage还是http://mysite.com/page

1 个答案:

答案 0 :(得分:5)

在服务器或特定站点的日志记录设置中(我通常全局配置日志记录),如果您已选择URI Query (cs-uri-query)日志记录字段,则IIS将记录查询字符串:

enter image description here

您可以使用以下方法启用所有字段:

appcmd set config -section:sites -siteDefaults.logFile.logExtFileFlags:Date,Time,ClientIP,UserName,SiteName,ComputerName,ServerIP,Method,UriStem,UriQuery,HttpStatus,Win32Status,BytesSent,BytesRecv,TimeTaken,ServerPort,UserAgent,Cookie,Referer,ProtocolVersion,Host,HttpSubStatus

在日志文件中,您会看到两个字段:

  • cs-uri-stem - 这将是您网址的/page部分
  • cs-uri-query - 代表查询字符串,例如to=otherpage&life=42。你不会看到问号,因为它被剥离了。

如果网址中没有查询字符串值,那么您会在-字段中看到连字符(cs-uri-query)。

至于默认值是什么......我不记得我的头脑了。这是因为我们使用一组模板和黄金映像构建我们的服务器,这些模板和黄金映像并不是真正的普通IIS7盒子,并且已经启用了所有日志记录字段。

然而,在全局日志记录设置中蠢蠢欲动,你很快就会发现(假设有人自服务器构建以来没有触及这些)。

最后,全局日志记录设置将由服务器上的所有站点继承,除非您在站点级别本地覆盖。

你可能也会发现这个答案我给了一段时间有用,其中有一些关于IIS日志文件的其他信息:

  

https://stackoverflow.com/a/11298241/419