ApplicationPoolsを反復処理してRecycle()を呼び出すだけでは不十分です。シェル呼び出しに頼らずに(.Netから)プログラムでIISResetを最もよく模倣するにはどうすればよいですか?Microsoft.Web.Administrationを使用する場合は、IISResetに相当するもの
そして、最も重要なのは、IISResetはMicrosoft.Web.Administration名前空間で使用できるツールでは実現できないことはありますか?
ApplicationPoolsを反復処理してRecycle()を呼び出すだけでは不十分です。シェル呼び出しに頼らずに(.Netから)プログラムでIISResetを最もよく模倣するにはどうすればよいですか?Microsoft.Web.Administrationを使用する場合は、IISResetに相当するもの
そして、最も重要なのは、IISResetはMicrosoft.Web.Administration名前空間で使用できるツールでは実現できないことはありますか?
あなたは次のサービスを起動または停止することによって、System.ServiceProcess.ServiceControllerを(このanswerからアイデアを得た)を使用することができます:
-Windowsプロセスアクティブ化サービス(WAS)
- 世界Wide Web発行サービスを( W3SVC)
は、ここではいくつかの仕事をやるのコードです:他のIISRESETコマンドについては
//stop iis (like running "IISReset /Stop")
ResetService("WAS", false);
ResetService("W3SVC", false);
//start iis (like running "IISReset /Start")
ResetService("WAS", true);
ResetService("W3SVC", true);
private static void ResetService(string name, bool start)
{
using (var service = new System.ServiceProcess.ServiceController(name))
{
if (start && service.Status == ServiceControllerStatus.Stopped)
{
service.Start();
}
else if (!start && service.Status == ServiceControllerStatus.Running)
{
service.Stop();
}
}
}
、あなたは簡単に十分なタイムアウトのコードがあります。コンピュータを再起動するには、this answerをチェックしてください。詳細が必要な場合はお知らせください。
しかし、これで十分ではないのですが、this technique(とにかくやりたいことがあればかなりのバラです)を使って、いつでもC#でパワーシェルスクリプトを実行できます。