【问题标题】:Cant write more than 4096 bytes into custom IIS log field无法将超过 4096 个字节写入自定义 IIS 日志字段
【发布时间】:2018-10-22 12:05:15
【问题描述】:

根据this documentation可以在Windows Server 2016上配置IIS 10写入自定义字段,只要“自定义字段中添加的数据总量不能超过65536字节

我已经配置了一个自定义字段来将来自 Header 的 cookie 和另一个来自服务器变量的 cookie 写入日志,这工作得很好。

但无论我在 maxCustomFieldLength 中输入什么值,都只会将 4096 字节写入日志。

当我在 cookie 中发送 8k 数据时,我:

  1. 将 maxCustomFieldLength 设置为 4096 我在日志文件中只得到 2048 个字节。
  2. 将 maxCustomFieldLength 增加到 65536,我在日志文件中只得到 4096 个字节。

我已使用 fiddler 验证浏览器请求正在发送完整的 8k cookie 值,并且它们没有在客户端将值截断为 4096。

任何想法为什么 IIS 将 cookie 值截断为 4096 并且不遵守大于 4096 的 maxCustomFieldLength?

【问题讨论】:

    标签: iis cookies iis-10 iis-logs


    【解决方案1】:

    现在对此进行了广泛的研究,我发现在标准 IIS 日志文件小于 4k 时将所有 cookie 记录到标准 IIS 日志文件的唯一方法是编写一个自定义 HttpModule:

    1. 挂钩到 Begin_Request
    2. 从请求标头中读取原始 cookie 字符串
    3. 将其拆分为
    4. 将块写入自定义请求标头
    5. 使用一堆新的自定义字段配置 IIS,以将新的请求标头放入 iis 日志中

    【讨论】:

      猜你喜欢
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 1970-01-01
      • 2020-01-26
      相关资源
      最近更新 更多