【发布时间】:2016-02-13 21:14:27
【问题描述】:
如何以编程方式重新启动当前应用程序?
基本上在 Startup.cs 中,我需要从程序集中加载一些服务,这些服务需要重新启动 IIS 或重新启动应用程序/Startup.cs 重新运行。
【问题讨论】:
标签: asp.net-core asp.net-core-mvc asp.net-core-1.0
如何以编程方式重新启动当前应用程序?
基本上在 Startup.cs 中,我需要从程序集中加载一些服务,这些服务需要重新启动 IIS 或重新启动应用程序/Startup.cs 重新运行。
【问题讨论】:
标签: asp.net-core asp.net-core-mvc asp.net-core-1.0
应用程序自行重启总是有问题的。
也许您想考虑使用dnx-watch 之类的东西,它会监视您的应用并在文件更改时重新启动它。
【讨论】:
一旦您使用 IIS 集成,您就可以像这样使用 hack:编辑(以编程方式)您的 web.config 文件。 IIS 监视此文件并将重新启动您的站点。
例如,您可以在文件末尾附加一个空格。
当然这将是“冷”重启,整个 dnx 进程将被重启。您的网站将在一段时间内不可用。
【讨论】:
可以回收应用程序池吗?
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "appcmd.exe";
startInfo.Arguments = "recycle apppool /apppool.name:AppPool_NAME";
process.StartInfo = startInfo;
process.Start();
【讨论】: