getting an exception when refreshing the configuration in memory on change to external config file

Posted by RKP on Stack Overflow See other posts from Stack Overflow or by RKP
Published on 2010-12-21T18:48:14Z Indexed on 2010/12/21 18:54 UTC
Read the original article Hit count: 233

Hi, I have a windows service which reads the config settings from an external file which is located at a different path than the path to the executable for the windows service. the windows service uses a FileSystemWatcher to monitor the changes to the external config file and when it the config file is changed, it should refresh the settings in memory by reading the updated settings from the config file. but this is where I am getting an exception "ConfigurationErrorsException" and the message is "An error occurred creating the configuration section handler for appSettings: The process cannot access the file 'M:\somefolder\WindowsService1.Config' because it is being used by another process." and the inner exception is actually "IOException" with same message. here is the code. I am not sure what is wrong with the code. Please help.

protected void watcher_Changed(object sender, FileSystemEventArgs e)
{
    ConfigurationManager.RefreshSection(ConfigSectionName);
    WriteToEventLog(ConfigKeyCheck);

    if (FileChanged != null)
        FileChanged(this, EventArgs.Empty);
}

private void WriteToEventLog(string key)
{
    if (EventLog.SourceExists(ServiceEventSource))
    {
        EventLog.WriteEntry(ServiceEventSource,
                            string.Format("key:{0}, value:{1}", key, ConfigurationManager.AppSettings[key]));                
    }
}

© Stack Overflow or respective owner

Related posts about c#

Related posts about configuration