Сценарий: веб-приложение asp.net было развернуто на удаленном IIS и настроено для входа в базу данных oracle. Таблица журнала содержит следующие столбцы: Login_ID, Log_message, Querystring, ipaddress. Таким образом, развернутый URL просматривался из разных систем, используя разные login_ids
Проблема: Когда приложение запускается в разных системах с разными идентификаторами входа и разными потоками, идентификатор входа одного потока / системы вставляется для другого потока / системы. Но когда запускается один экземпляр приложения, значения вставляются правильно.
Пример: при входе в систему с идентификатором X сайт просматривается в потоке «A», а другой пользователь с логином Y просматривает сайт в потоке «B». Имя входа «X» вставляется в записи с потоком «B» и потоком «A»
Код:
user = (User) Session ["User"];
log4net.GlobalContext.Properties ["LOGIN_ID"] = user.loginid;
Исследование. После просмотра нескольких сайтов я узнал, что контексты log4net не работают должным образом с asp.net.
http://piers7.blogspot.com/2005/12/log4net-context-problems-with-aspnet.html
http://piers7.blogspot.com/2007/07/log4net-in-aspnet-redux-implement.html
Эти ссылки предлагают мне использовать httpcontext, который я пытался, но не смог получить результат. Так может кто-нибудь помочь мне решить эту проблему.