利用下列代码可实现IIS应用池的远程回收
var serverManager = ServerManager.OpenRemote(ip); var appPools = serverManager.ApplicationPools;foreach (var ap in appPools) { ap.Recycle(); }
注意点:
1.需要添加引用 C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll ,然后using Microsoft.Web.Administration;
2.远程账号需要有管理员权限;
3.远程主机的账号密码添加在服务器的凭据管理器中 (控制面板->凭据管理器) ,能成功使用mstsc 登录即可;
4.远程主机需要关闭UAC!! 因为这个问题卡了好几个礼拜才无意发现。
ps:可以利用ap.Recycle()的返回值判断回收是否成功。