管理WCF中的配置更改

时间:2011-09-24 22:11:16

标签: wcf configurationmanager

在WCF webservices 中管理配置文件更改的首选方法是什么?我知道通常在桌面应用程序中,人们使用FileSystemWatcher来监视App.config中的更改,但是如何在WCF中配置一个?我尝试使用类似下面的代码:

public class Service : IService
{
    private static readonly FileSystemWatcher ConfigurationWatcher = new FileSystemWatcher(PathToRootDirectory);

    private void ReloadConfiguration(object sender, FileSystemEventArgs e)
    {
        ConfigurationManager.RefreshSection("appSettings");
        ConfigurationManager.RefreshSection("connectionStrings");
    }

    // IService implementation goes here.

    static Service()
    {
        ConfigurationWatcher.Filter = "web.config";
        ConfigurationWatcher.NotifyFilter = NotifyFilter.LastWrite;
        ConfigurationWatcher.Change += ReloadConfiguration;
    }
}

然而,这似乎不起作用,因为ConfigurationWatcher似乎在每次调用服务时都被初始化......如何实现这一目标?

1 个答案:

答案 0 :(得分:1)

这会自动发生在IIS中托管的服务。

对web.config或bin文件夹中的任何程序集进行的任何更改都将导致当前AppDomain关闭,并为后续请求启动新的AppDomain - 就像使用ASP.NET一样。