ASP.NetとC#を使用してIIS 6でアプリケーションプールをリサイクルするにはどうすればよいですか?

IIS 6サーバーがあり、特定のアプリケーションプールをリサイクルする必要があります。このタスクを実行するC#を使用してASP.NET Webページを設計する必要があります。

これどうやってするの?

1

4 答え

別のWebページ/ Webアプリケーションを作成し、それを別のアプリケーションプールをターゲットとするWebサーバーにインストールします(アプリケーションの同じページとして実行していて、リサイクルしたい同じアプリケーションプールにリンクしている場合はどうなるかわかりません)。

then follow instructions here: https://stackoverflow.com/a/496357/559144

2
追加された

次のことが必要です(かなり長い間コードが使用されていなかったことを証明できません)。

using System;
using System.Collections.Generic;
using System.Web;
using System.DirectoryServices;

public static class ApplicationPoolRecycle
{
    public static void RecycleCurrentApplicationPool()
    {
        string appPoolId = GetCurrentApplicationPoolId();
        RecycleApplicationPool(appPoolId);
    }
    private static string GetCurrentApplicationPoolId()
    {
        string virtualDirPath = AppDomain.CurrentDomain.FriendlyName;
        virtualDirPath = virtualDirPath.Substring(4);
        int index = virtualDirPath.Length + 1;
        index = virtualDirPath.LastIndexOf("-", index - 1, index - 1);
        index = virtualDirPath.LastIndexOf("-", index - 1, index - 1);
        virtualDirPath = "IIS://localhost/" + virtualDirPath.Remove(index);
        DirectoryEntry virtualDirEntry = new DirectoryEntry(virtualDirPath);
        return virtualDirEntry.Properties["AppPoolId"].Value.ToString();
    }
    private static void RecycleApplicationPool(string appPoolId)
    {
        string appPoolPath = "IIS://localhost/W3SVC/AppPools/" + appPoolId;
        DirectoryEntry appPoolEntry = new DirectoryEntry(appPoolPath);
        appPoolEntry.Invoke("Recycle");
    }
}
0
追加された
@Riyaju - ( Page_Load で)ページを呼び出した結果として、または ApplicationPoolRecycle.RecycleCurrentApplicationPool()をクリックした結果として ApplicationPoolRecycle.RecycleCurrentApplicationPoolボタン( myButton_Click
追加された 著者 Rob,
どのように私はAspxフォームで設計できますか?
追加された 著者 Riyaju,

DirectoryEntry クラスを使用すると、アプリケーションをプログラムでリサイクルできますプール名:

var path = "IIS://localhost/W3SVC/AppPools/MyAppPool";
var appPool = new DirectoryEntry(path);
appPool.Invoke("Recycle");
0
追加された

私はこの方法を使用しています。

HttpRuntime.UnloadAppDomain()

HttpRuntime.UnloadAppDomainメソッド(System.Web)

0
追加された