如何在WCF中使用静态对象?

时间:2011-12-28 14:19:17

标签: c# wcf static

我正在实施Log4Net工具包

使用:

  private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);



public string MyFunc()
{
        log4net.Config.XmlConfigurator.Configure();

        log.Debug("function called on: " + DateTime.Now.ToShortDateString());
}

问题:

我总是需要打电话给:

 log4net.Config.XmlConfigurator.Configure();

在ASP.NET应用程序中,我只能在Session_Start事件中调用一次但在WCF服务应用程序中执行此操作

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

这取决于您的服务的InstanceContextModeConcurrencyMode。通常,WCF服务是无状态的(使用InstanceContextMode PerCall)。这会导致为每个调用创建一个新的服务对象,因此您必须为每个调用设置日志记录(例如在构造函数中)