Log4net threadContext 与 IIS 中托管的 WCF 一起使用是否安全?
我在一些地方读到 log4net threadContext 在 asp.net 场景中使用不安全。这里有几篇文章:
Log4Net、ThreadContext 和 Global.asax
http://piers7.blogspot.com/2005/ 12/log4net-context-problems-with-aspnet.html
所以我的场景是我想在 IIS 内托管的 WCF 层中使用 threadContext。线程上下文会好吗?我认为“单一”并发模式可以解决这个问题。
I've read in a few places that the log4net threadContext isn't safe to use in an asp.net scenario. Here are a few articles:
Log4Net, ThreadContext, and Global.asax
http://piers7.blogspot.com/2005/12/log4net-context-problems-with-aspnet.html
So my scenario is I want to use the threadContext in a WCF layer hosted within IIS. Is the threadcontext going to be ok? I'm thinking the concurrency mode of "single" would make this ok.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
由于 Log4net 是线程安全的,我预计不会出现问题。
As Log4net is thread safe I would not expect a problem.
我已使用 log4net 线程上下文来记录在 ASP.NET 应用程序和 WCF 服务中遇到错误的用户的身份。我没有遇到任何问题。这不是一个明确的答案,但您始终可以将您的服务与日志记录框架分离并测试 log4net 和线程上下文。如果遇到任何问题,请删除线程上下文逻辑或插入新的日志记录框架,对服务逻辑的影响最小。
I have used log4net thread context to log the the identity of the user who encountered the error in both asp.net applications and wcf services. I have not run into any issues. This is not a definitive answer but you can always decouple your service from the logging framework and test log4net and the threadcontext. if you encounter any issues remove your thread context logic or plug in a new logging framework with minimal impact to your service logic.
我已经设置了一个 WCF 服务,托管在 IIS6 中,它使用 log4net 没有任何问题,无论并发模式如何。使用 threadContext 应该不是问题。
唯一需要注意的是,如果将 log4net 设置从外部文件加载到 WCF 层,则可能需要在 IIS 中重新启动它才能使更改生效。
I have setup a WCF service, hosted in IIS6, that uses log4net with no issues, regardless of the concurrency mode. Using the threadContext should not be a problem.
The only caveat is that if you load the log4net setting from an external file into the WCF layer, you may have to restart it in IIS to pick up the changes.