Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

Recycling IIS Apppools .

4.00/5 (1 vote)
21 Feb 2012CPOL 9.1K  
net-App-To-Recycle-the-AppPools-of-IIS-using-WMIC
Introduction

This is Test Application which can be used to recycle the IIS App Pools of the server. In this app I have given only one server but you can give any no of servers you want just add the buttons and copy the code of the button "button_Server_Click" to the other button code's. Also you can add any no. of apppools you want.

Using the code

This is a test Application .In this Application I have used WMIC Code to recycle the AppPools of the server .The code to recycle the Apppool is written in button click event "button_Server_Click"

 string command = String.Empty;//string variable..
//Passing WMIC code to command variable.For recycling more than one apppool declare multiple string variables and pass WMIC code like mentioned below.
 
command = "wmic /namespace:" + "\"\\\\root/MicrosoftIISv2\"" + " /node:" + " \"Your_             Server_Name\"  " + "path IISApplicationPool where (name like '%Your_IISAppool1%') call recycle";
           ExecuteCmd cmd = new ExecuteCmd();//declaring object of class ExecuteCmd
           cmd.ExecuteCommandAsync(command);//Passing string variable containing WMIC code to method ExecuteCommandAsync declared in class ExecuteCmd.
 
//This"ExecuteCommandAsync" method is used  to execute the WMIC Command. it is in the class "ExecuteCmd" 
public void ExecuteCommandAsync(string command)
        {
            try
            {
                //Asynchronously start the Thread to process the Execute command request.
                Thread objThread = new Thread(new ParameterizedThreadStart(ExecuteCommandSync));
                //Make the thread as background thread.
                objThread.IsBackground = true;
                //Set the Priority of the thread.
                objThread.Priority = ThreadPriority.AboveNormal;
                //Start the thread.
                objThread.Start(command);
            }
            catch (ThreadStartException objException)
            {
                // Log the exception
            }
            catch (ThreadAbortException objException)
            {
                // Log the exception

            }
            catch (Exception objException)
            {
                // Log the exception
                MessageBox.Show(objException.Message.ToString());
            }
        }
        #endregion 

Here the main code is "wmic /namespace:" + "\"\\\\root/MicrosoftIISv2\"" + " /node:" + " \"%Your_ Server_Name%\" " + "path IISApplicationPool where (name like '%Your_IISAppool1%') call recycle";"

In"% Your_Server_Name%" :- Give the name of the server whose apppool you want to recycle.

In" %Your_IISAppool1%" :- Give the name of IIS apppool of the server you want to recycle.

Point to be noted:- All the server should be in same network.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)