小编典典

重新启动(回收)应用程序池

c#

如何从C#(.net 2)重新启动(回收)IIS应用程序池?

感谢您发布示例代码吗?


阅读 460

收藏
2020-05-19

共1个答案

小编典典

如果您使用的是 IIS7, 则在停止时将执行此操作。我认为您可以调整以重新启动而无需显示。

// Gets the application pool collection from the server.
[ModuleServiceMethod(PassThrough = true)]
public ArrayList GetApplicationPoolCollection()
{
    // Use an ArrayList to transfer objects to the client.
    ArrayList arrayOfApplicationBags = new ArrayList();

    ServerManager serverManager = new ServerManager();
    ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;
    foreach (ApplicationPool applicationPool in applicationPoolCollection)
    {
        PropertyBag applicationPoolBag = new PropertyBag();
        applicationPoolBag[ServerManagerDemoGlobals.ApplicationPoolArray] = applicationPool;
        arrayOfApplicationBags.Add(applicationPoolBag);
        // If the applicationPool is stopped, restart it.
        if (applicationPool.State == ObjectState.Stopped)
        {
            applicationPool.Start();
        }

    }

    // CommitChanges to persist the changes to the ApplicationHost.config.
    serverManager.CommitChanges();
    return arrayOfApplicationBags;
}

如果您使用的是 IIS6,
我不太确定,但是您可以尝试获取web.config并编辑修改后的日期或其他内容。对web.config进行编辑后,应用程序将重新启动。

2020-05-19