2

以下のvbscriptコードのコードをc#で取得するのを手伝ってくれる人はいますか?

Option Explicit

Dim WebSiteID, objWebSite, ObjAppPool

WebSiteID = "1"

Set objWebSite = GetObject("IIS://localhost/W3SVC/" & WebSiteID)
WScript.Echo "Stopping Web Site : " & objWebSite.ServerComment
objWebSite.Stop()

wscript.echo "Stopping Application Pool : " & objWebSite.AppPoolID
Set objAppPool = GetObject("IIS://localhost/W3SVC/AppPools/" & objWebSite.AppPoolID)
objAppPool.Stop()

wscript.echo "Starting Application Pool : " & objWebSite.AppPoolID
objAppPool.Start()

WScript.Echo "Starting Web Site : " & objWebSite.ServerComment
objWebSite.Start()

どうもありがとう

4

1 に答える 1

2

停止 + 開始 = リサイクルなので、次のようにする必要があります。

参照: System.DirectoryServices.dll

  using System.DirectoryServices;

  void Recycle(string appPool)
    {
        var appPoolPath = "IIS://localhost/W3SVC/AppPools/" + appPool;

        using (DirectoryEntry appPoolEntry = new DirectoryEntry(appPoolPath))
        {
            appPoolEntry.Invoke("Recycle", null);
            appPoolEntry.Close();
        }
    } 

この方法が失敗した場合は、サーバーで「IIS 6 WMI 互換性」を有効にする必要がある場合があります。

于 2012-08-07T10:38:39.117 に答える