Назад | Перейти на главную страницу

Включить ведение журнала идентификатора сеанса в IIS

Можно ли регистрировать только идентификатор сеанса в файлах журнала IIS? Я видел, что вы можете регистрировать информацию о файлах cookie, которая содержит идентификатор сеанса, однако это может регистрировать все файлы cookie, и проблема заключается в том, что файлы журнала IIS значительно увеличатся в размере.

Спасибо и привет,

Картик

По умолчанию SessionID хранится в файле cookie, поэтому вам нужно будет регистрировать все файлы cookie, чтобы получить SessionID. Вам нужно будет настроить свой веб-сайт для использования сеансов без файлов cookie, которые заставят SessionId передаваться в URL-адресе. Вы можете узнать больше о том, как это настроить, на https://technet.microsoft.com/en-us/library/cc725824(v=ws.10).aspx

В дополнение к предложению @ PatrickBarron вам необходимо зарегистрировать значение через коллекцию файлов cookie, поскольку IIS не имеет прямого доступа к идентификатору сеанса из модуля ведения журнала.

В IIS перейдите к узлу дерева сайта и выберите редактор журнала. Нажмите кнопку «Выбрать поля ...» и в верхней части окна в разделе «Стандартные поля» отметьте поле «Файлы cookie (cs (Cookie))».

Обратите внимание, что это регистрирует весь файл cookie, а не только ASP.NET_SessionID ценность, которую вы ищете. Также обратите внимание, что не каждый сеанс будет иметь SessionID как часть оптимизации в ASP.NET.

Если вы хотите быть более детализированным, я думаю, вам нужно сделать что-то немного сложное. Вы можете использовать UrlRewrite для извлечения значения cookie и записи нового заголовка запроса, например X-SessionID, затем добавить настраиваемое поле в журнал? Это, наверное, самый короткий путь; или что-то подобное.

SessionID - это конструкция приложения, которая объясняет, почему IIS не регистрирует его изначально.

Вы можете попробовать это методом Response.AppendToLog.

Я просто играл с этим и нашел классную работу. Это даст вам гибкость при вводе любого значения со страницы ответа.

ШАГ 1 Добавьте в свой код строку, которая добавляет response.addHeader с желаемой переменной. Например, в ASP: response.AddHeader "SERVER_SID", Session.SessionID

ШАГ 2 в диспетчере IIS выберите свой сайт -> Выберите конфигурацию «Ведение журнала» -> Нажмите «Выбрать поля ...» рядом с «Форматировать» (должен быть выбран «W3C») -> В области настраиваемых полей нажмите «Добавить поле ...» -> в модальном всплывающем окне. Введите имя поля, выберите «Тип источника:» в качестве «Заголовок ответа» и в поле «Источник:» введите ТОЧНОЕ имя переменной заголовка, которую вы ввели на ШАГЕ 1. В нашем примере это «SERVER_SID» ". Нажмите ОК -> ОК -> Применить

Теперь вы должны увидеть это в своем файле журнала (НО ТОЛЬКО в тех строках, где был сделан фактический запрос, а не в изображениях, файлах JS или файлах CSS).