修改ASP.NET(MVC)应用程序的“ web.config”文件时,the application is automatically recompiled/restarted,强制读取修改后的“ web.config”。

我的问题:

是否可以将这种更改检测行为应用于ASP.NET网站根目录中的我自己的配置文件(例如“ my-config.json”)?

即当有人修改“ my-config.json”文件时,该应用程序将重新启动。

最佳答案

您可以使用FileSystemWatcher来监视文件并检测更改,然后重新启动应用程序或重新加载设置。

也许您不需要重新启动应用程序,而只需要重新加载设置

protected void Application_Start()
{
    // Other initializations ...
    // ....

    var watcher = new FileSystemWatcher();
    //Set the folder to watch
    watcher.Path = Server.MapPath("~/Config");
    watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite;
    //Set a filter to watch
    watcher.Filter = "*.json";
    watcher.Changed += watcher_Changed;

    // Begin watching.
    watcher.EnableRaisingEvents = true;
}

void watcher_Changed(object sender, FileSystemEventArgs e)
{
    //Restart application here
    //Or Reload your settings
}

10-04 23:42