A Web administrator has to have access to the IIS server in order to ensure that any diagnostic/preventive measures can be performed at any point of time. One has to ensure all the web sites are running up and fine during the course of a day. Activities like recycling Application pools, starting/stopping Web sites etc. are an essential part of this process. This may be most painful when you are away having a good time and you get a call that the web sites are having performance issues etc, and you are required to ensure they are recycled, restarted etc. etc.
I have written this Web application to ensure one has access to their IIS 6.0 Web server from any part of the world. I have used WMI features built on top of .Net. It has the following features at this point.
Application Pool related activities
· Recycle/Start/Stop Application Pool(s)
· Change Application Pool Identity.
· Check features like Application Pool Recycling options, Current state of an Application Pool and current Application Pool Identity.
· Enumerate an Application Pool to see the Web applications running underneath it.
Web Site related activities
· Start/Stop Web Site(s)
· Check features like current Web Site state, and some configuration related settings like Web Site physical path, Server Bindings, Secure Bindings, Authentication method, SSL access, Application Pool etc.
· At times the only way to recover from a problem is to restart IIS services. You can restart all IIS services like IISADMIN, SMTP and World Wide Web Publishing service from any where through this application.
There are tools available like MS Administration site, but it had somewhat limited features in my opinion. I intend to modify the existing features in my application as time permits.
· You need to have .Net Framework 2.0 installed on the IIS web server.
· If AJAX-enabled version of this application is deployed, you need to have Microsoft ASP.Net 2.0 AJAX Extensions 1.0 installed on the server for it to work.
Steps to deploy the application
1. Download the ZIP file attached with this post.
2. Extract all the contents to some physical folder on the IIS Web server.
3. Create a new web site (or better in my opinion, a new virtual Directory under any of your existing Internet-facing Web sites) and point it to this physical path for the extracted files/folders.
4. ***ENSURE that you create a new application Pool for this Virtual Directory, and put the application under this application pool. In such a scenario this application will not interfere with any of your existing web applications running on the server.
5. This application is built using ASP.Net 2.0 and has two flavors, AJAX-enabled and non-AJAX based. if you are using AJAX-enabled application you need to ensure Microsoft ASP.Net 2.0 AJAX Extensions 1.0 is installed on the server.
6. Open the web.config file associated with this application and modify the <appSettings> to reflect the name of your Application Pool and name of the Web site under which this application is running [Attached ZIP file contains a word document as well with detailed steps for deployment].
I have covered the essential features required for a web server management and plan to modify it with more granular features with time.
Here are some screen captures related to usage
****Ensure the application pool Identity entered forms a part of Local IIS_WPG group on the server.
Click on IIS Reset shown below to restart all IIS services like IISADMIN, FTP, SMTP and WWW.
When you reset IIS, you won't be able to browse to the Web application for a minute or so, depending upon how long it takes for the IIS services to stop and then start back running.
In this interval if you try to access the site you will see the following error:
For AJAX-enabled version, you will get a pop up as shown below:
For Non-AJAX version you will see the following page:
At any point you can check the status of the selected Application Pool and the selected Web site.
This is provided "AS IS".
Any constructive feedback is appreciated ;-)
Till next time, Cheers!
Links for download:
AJAX enabled version: http://cid-d6e3b4cd95f9d0f2.skydrive.live.com/self.aspx/Public/AJAX%20enabled%20version.rar
Non-AJAX version: http://cid-d6e3b4cd95f9d0f2.skydrive.live.com/self.aspx/Public/Non-AJAX%20version.rar
Steps for Deployment: http://cid-d6e3b4cd95f9d0f2.skydrive.live.com/self.aspx/Public/Steps%20for%20Deployment.doc
*You can also download the AJAX version from here www.iis.net/downloads
Debug ASP.NET Tips: What to gather to troubleshoot - part 5 - OutOfMemoryException .NET Why use the Entity
This is a cool tool. What would make it even more powerful is if it was built to support mobile devices. It would be great to be able to restart while out of the office. Of course, with 3G phones and better surf-ability on the new phones this will become less important.
Thanks nbChi :-)
Yes, in fact I started building this application keeping in mind its usage as a mobile application, but then the functionality went on increasing beyond...which led me to convert it into a web application. I will be working in some time on another mobile based app having similar feature.
BTW, in case you would like to check the IIS 7 mobile app having similar behavior check this out:
FYI, since nbChi had asked on a similar line, I have written a mobile web app to get the same functionality achieved from a mobile device.