And*_*rko 6 .net configuration
当它的任何部分配置发生变化时,我必须完全重启应用程序.IIS最好在asp.net应用程序中查看配置,但如何重新启动控制台或服务等应用程序?
是否可以使用FileSystemWatcher监视配置文件更改并启动新的应用程序实例,关闭当前应用程序?
就像是:
var file = new FileInfo(AppDomain.CurrentDomain.
SetupInformation.ConfigurationFile);
var watcher = new FileSystemWatch(file.Directory.FullName)
{
Filter = "...",
NotifyFilter = NotifyFilter.LastWrite }
);
watcher.Changed += .. // Process.Start(..), current process shutdown
watcher.EnableRaisingEvents = true;
Run Code Online (Sandbox Code Playgroud)
您可以在单独的 AppDomain 中运行实际的应用程序逻辑。初始(或默认)AppDomain 仅用于(a)启动带有文件系统观察程序的线程,以及(b)在单独的AppDomain 中启动应用程序逻辑。关键是,您可以在创建 AppDomain 时传递配置文件的路径。
当您发现配置文件中发生更改时,您将停止应用程序逻辑(无论这在您的情况下意味着什么 - 这是真正棘手的部分!)并卸载 AppDomain,然后重新启动它,这将使用更新的配置文件。
| 归档时间: |
|
| 查看次数: |
496 次 |
| 最近记录: |