在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
似乎在每次调用服务时都被初始化......如何实现这一目标?
答案 0 :(得分:1)
这会自动发生在IIS中托管的服务。
对web.config或bin文件夹中的任何程序集进行的任何更改都将导致当前AppDomain关闭,并为后续请求启动新的AppDomain - 就像使用ASP.NET一样。