C#

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

发布于 2021-02-02 16:01:06

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

感谢您发布示例代码吗?

关注者
0
被浏览
72
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    如果您使用的是 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进行编辑后,应用程序将重新启动。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看