シナリオ:asp.net WebアプリケーションがリモートIISにデプロイされ、Oracleデータベースにログインするように構成されています。ログテーブルには、Login_ID、Log_message、Querystring、ipaddressの列があります。そのため、デプロイされたURLは、さまざまなlogin_idsを使用してさまざまなシステムから参照されました。
問題:アプリケーションが異なるログインIDと異なるフローを持つ異なるシステムで実行されている場合、あるフロー/システムのログインIDが別のフロー/システムに挿入されます。ただし、アプリケーションの単一インスタンスが実行されると、ウォールが適切に挿入されます。
例:ログインID Xの場合、サイトはフロー「A」を介して参照され、ログインID Yの別のユーザーは、フロー「B」を介してサイトを参照しています。Loginid'X'は、フロー'B'およびフロー'A'のレコードに挿入されます</p>
コード:
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を使用することを示唆しています。だから誰かが私がこの問題を解決するのを手伝ってくれる?