Я создал сайт ASP.NET с Visual Studio 2010 C #.
Моя программа читает конфигурационный файл для создания некоторых классов и отображения информации.
Файл конфигурации не включен в проект (не отображается в обозревателе решений). Если я изменяю файл, когда мое приложение не запущено, и запускаю его впоследствии, он все равно читает старую версию, как будто хранит ее в кэше. Я должен закрыть Visual Studio, чтобы он принял изменения.
Моя вторая проблема связана (если не вызвана) с моей первой проблемой. Я использую FileSystemWatcher, чтобы увидеть, был ли изменен файл конфигурации во время работы приложения, но событие Changed никогда не вызывалось.
private string _configFilePath;
private FileSystemWatcher _watcher;
protected void Page_Load(object sender, EventArgs e)
{
//Gets the config file in the application's parent directory
string appPath = this.MapPath("~");
string[] split = appPath.Split('\\');
_configFilePath = appPath.Substring(0, appPath.Length - split[split.Length-1].Length);
Application.Add("watcher", new FileSystemWatcher(_configFilePath.Substring(0, _configFilePath.Length-1), "*.xml"));
_watcher = (FileSystemWatcher)Application["watcher"];
_watcher.NotifyFilter = NotifyFilters.FileName;
_watcher.Changed += new System.IO.FileSystemEventHandler(Watcher_Changed);
_configFilePath += "ProductsConfig.xml";
UpdateDisplay();
}
private void Watcher_Changed(object source, FileSystemEventArgs e)
{
UpdateDisplay();
}
Как я могу решить эту проблему?
Спасибо