分类: WINDOWS
2012-04-17 10:40:04
Microsoft Internet Information Services (IIS) 版本 6.0 引入了在单独的文件从 Web 日志中记录的错误。
IIS 6.0 中的 httperr.log 文件只是为了向我们的读者提供一点解释,它记录的是有关 http.sys 的活动和错误。例如,如果有某个应用程序池脱机,没有网站可以响应请求,这样 http.sys 中就会记录一个条目。无效的 http 请求、超时客户端连接掉线、有效连接由于信息接收太慢而掉线以及其他类似事件都会被记录到其中。
httperr 日志文件的文件格式如下:
字段
描述
Date
以 UTC 时间形式表示的日期。这个条目的长度总是 10 个字符,例如 2000-01-31。
Time
时间,以 UTC 时间形式表示。这个条目的长度总是 8 个字符,例如 00:12:23。
Client IP
客户端的 IP 地址。IP 地址的版本可以是 IPv4 或是 IPv6。如果是 IPv6,则“作用域 ID”字段也会出现。
Client Port
客户端的端口。
Server IP
服务器的 IP 地址。服务器的 IP 地址可以是 IPv4 或是 IPv6。如果是 IPv6,则“作用域 ID”字段也会出现。
Server Port
服务器的端口。
Protocol version
协议版本,如果连接上的最后一个请求经过充分分析后足以确定协议版本的话。如果主版本或次版本大于或者等于 10,驱动程序就会将版本记录为“HTTP/?.?”。
Verb
谓词,如果最后一个请求经过分析认为可以传递谓词状态的话。未知的谓词也会被记录。HTTP.sys 限制谓词的长度不得超过 255 字节,超出的字节将被截断。
CookedURL 和查询
URL 及其查询,如果二者都存在的话。URL 与查询之间以问号 (?) 分隔。如果请求的 URL 被完全处理(也称为 cooked),则处理的 URL 就会被记录并进行本地代码页面转换,同时被视为 Unicode 字段。
如果在记录时仅提供未经处理(原始)的 URL,则会按原样对其进行记录,并且不会进行本地代码页面转换。HTTP.sys 限制 URL 的长度不得超过 4096 字节,超出的字节将被截断。
协议状态
请求的响应的协议状态,如果可用的话。这个值不能大于 999。
Site ID
站点 ID,这是一个数值型的值。例如,这个字段不是记录 W3SVC1,而是会记录“1”。站点 ID 的值没有上限(这个值最大可以到 MAX_ULONG)。
Reason phrase
关于为什么会出现错误的详细信息,取决于错误类型。这个字段不能为空。有关原因短语的更多信息,请参见本章后面的“HTTP.sys Reason phrase”。
(以下地址中可以找到此列表:http://www.microsoft.com/resources/documentation/IIS/6/all/techref/en-us/iisRG_LOG_14.mspx)
您可以看到网站 ID 已经被记录;但是如果每个站点都具有多个应用程序池,您就无法找出请求被定向到网站的哪个池。在 Windows Server 2003 Gold Release 中,这些字段是不可配置的。
为了解决这些问题,Microsoft 发布了一项显著更改 httperr 日志文件的 http.sys 更新。应用此项更新后,您就可以某种程度上配置这个记录的字段,它成了 httperr 日志文件加上 W3SVC 标准日志文件的组合。将与错误有关的“应用程序池”的条目添加到此字段中,您就会有一个更为详细的信息日志文件。
以下地址中详细介绍了这些更改:. Windows Server 2003 Service Pack 1 中也包含此功能。
打开httperr*.log , 您可能看到 Timer_MinBytesPerSecond 错误或 Timer_ConnectionIdle 错误。 这些是由 IIS 默认设置, 内其元数据库, 定义用于连接到保持活动小通信流速率和最大空闲时间之前连接中断允许。
1) 从 IIS 管理器右键单击 Internet Information Server (IIS) 管理器级别根目录上并转到属性。 选中要启用直接编辑元数据库框。单击确定。
在记事本中打开 C:\Windows\system32\inetsrv\MetaBase.xml 文件 2)。 要搜索有关 " MinFileBytesPerSec "。将用于 MinFileBytesPerSec 设置从 240 更改为 0。 执行其他搜索, 该时间将 600 " ConnectionTimeout "。 保存更改并退出。
3) 重新启动 IISAdmin 服务以更改生效。
一、关闭IIS HTTPRERR日志功能
默认情况下,2003服务器会把所有IIS访问错误的记录写入 C:\WINDOWS\system32\LogFiles\HTTPERR 下的 log 文件中,如果访问量比较大,可能一段时间后日志文件可能会占满C盘空间,导致服务器死机
同时因为要写入所有的IIS访问记录,如果访问量较大会大大增加服务器CPU占用率
关闭HTTPERR的方法
运行里输入 regedit 进入注册表编辑器
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]
在右边 点鼠标右键 新建dword值 EnableErrorLogging 重新启动服务器就可以了
"EnableErrorLogging"=dword:00000000
重起后,2003不再写入HTTPERR日志文件,可以看到服务器CPU占用明显下降!
二、修改存储目录也不失为一个好的办法
寻找:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters
在下面建立一个字符串值.即REG_SZ
数值名称 命名为: ErrorLoggingDir
数值数据 为你指定的路径比如 D:\logofilse