WebサービスはWindowsサービスの下には表示されません。 IISの下で実行されており、このサービスが実行されているアプリケーションプールを停止/開始する必要がある場合、IISを停止/開始する必要があります。遠隔から行う場合は、ターゲットサーバーでWMIを有効にする必要があります。あなたのためにこれを行いますコードを提供するあなたの便宜のために:
public void PoolAction(String servername, String AppPoolName, String action)
{
StringBuilder sb = new StringBuilder();
ConnectionOptions options = new ConnectionOptions();
options.Authentication = AuthenticationLevel.PacketPrivacy;
options.EnablePrivileges = true;
ManagementScope scope = new ManagementScope(@"\\" +
servername + "\\root\\MicrosoftIISv2", options);
// IIS WMI object IISApplicationPool to perform actions on IIS Application Pool
ObjectQuery oQueryIISApplicationPool =
new ObjectQuery("SELECT * FROM IISApplicationPool");
ManagementObjectSearcher moSearcherIISApplicationPool =
new ManagementObjectSearcher(scope, oQueryIISApplicationPool);
ManagementObjectCollection collectionIISApplicationPool =
moSearcherIISApplicationPool.Get();
foreach (ManagementObject resIISApplicationPool in collectionIISApplicationPool)
{
if (resIISApplicationPool["Name"].ToString().Split('/')[2] == AppPoolName)
{
// InvokeMethod - start, stop, recycle can be passed as parameters as needed.
resIISApplicationPool.InvokeMethod(action, null);
}
}
注:
- アクションが「停止」や「リサイクル」
- アカウントの下で、「スタート」を含めることができますこのコードはターゲットサーバー上で管理する必要があります。
サーバー上でWMIを有効にする方法
誰もが私を助けることができますか? –
あなたは私の提案を試しましたか? – Yuri