场景:在远程 IIS 上部署了一个 asp.net Web 应用程序,并配置为登录到 oracle 数据库。日志表有这些列:Login_ID、Log_message、Querystring、ipaddress。所以部署的 url 是使用不同的 login_ids 从不同的系统浏览的
问题:当应用程序在具有不同登录 ID 和不同流的不同系统上运行时,一个流/系统的登录 ID 被插入到另一个流/系统中。但是,当运行应用程序的单个实例时,会正确插入值。
示例:使用登录 ID X,通过流 'A' 浏览站点,而登录 ID 为 Y 的另一个用户通过流 'B' 浏览站点。登录 ID 'X' 被插入到流 'B' 和流 'A' 的记录中</p>
代码:
用户=(用户)会话[“用户”];
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,我尝试过但无法获得结果。所以任何人都可以帮我解决这个问题。