Не могу записать более 4096 байтов в настраиваемое поле журнала IIS - PullRequest
0 голосов
/ 22 октября 2018

Согласно этой документации вы можете настроить IIS 10 в Windows Server 2016 для записи настраиваемых полей, если " Общий объем данных, добавляемых в настраиваемые поля, не может превышать 65 536 байт "

Я настроил настраиваемое поле для записи файлов cookie из заголовка и другого из серверной переменной в журналы, и это прекрасно работает.

enter image description here

Но в журнал записывается только 4096 байт, независимо от того, какое значение я ввожу в maxCustomFieldLength.

Когда я отправляю 8k ofданные в файлах cookie и I:

  1. установить maxCustomFieldLength на 4096 Я получаю только 2048 байт в файле журнала.
  2. увеличить maxCustomFieldLength до 65536, я получаю только 4096 байт в файле журнала.

Я с помощью fiddler проверил, что запросы браузера отправляют полное значение 8k cookie и что они не усекают значение до 4096 на клиенте.

Любые идеи, почему IISобрезает значение cookie до 4096 и не учитывает maxCustomFieldLength больше 4096?

1 Ответ

0 голосов
/ 25 октября 2018

Проведя обширные исследования этого вопроса, я нашел единственный способ, чтобы все файлы cookie регистрировались в стандартные файлы журнала IIS, когда они <4k, - это написать собственный HttpModule, который: </p>

  1. подключается к Begin_Request
  2. считывает необработанную строку cookie из заголовков запроса
  3. разбивает ее на куски <4k (сохраняя все файлы cookie как целые элементы, имя и значение) </li>
  4. writeфрагменты в настраиваемые заголовки запросов
  5. настраивают IIS с кучей новых настраиваемых полей для добавления новых заголовков запросов в журналы iis
...