Click here to Skip to main content
15,883,705 members
Articles / Web Development / IIS
Article

Windows XP IIS Manager v1.7

Rate me:
Please Sign up or sign in to vote.
4.96/5 (30 votes)
16 Mar 2005CPOL5 min read 181.1K   1.6K   73   34
This article presentes a way of creating and managing multiple sites on the Windows XP IIS.

Image 1

Image 2

Background

Right now, I don't have a web server (Windows xxxx server), and as you all know, building multiple web sites on Windows XP is not very simple. Even if you have a server, you will always need a way of test something on you local computer before you upload it to the production server, and this solution may be of some use.

Windows XP IIS:

Problem 1: only one site - Microsoft has provided us with the "admin scripts", so we can create more sites, but these scripts are painful to use.

Solution: So I have decided to build a tool to take that pain go away.

Problem 2: only one site running at a time - this is not really so bad, but I didn't like to have to open "Internet Information Services" every time I have to change from one site to another.

After I completed the tool, I saw that it would be my first article. Why? Because maybe some one else has been having the same problems, and because, while I was making this tool, I realize that information on "Controlling IIS with C++" is difficult to find. So, I provide a "Ready to use tool" and the sample code.

Even knowing that .NET web programming has the bad habit of wanting the "Default Web Site" as the root for development (and if someone knows a way of doing it locally with other sites, I will be happy) , I think this tool may be useful...

Here it goes ...

The EasyIIS Tool

This tool will give you a way to create, delete, and change some properties of the existent sites. I have not implemented "all" the features of the IIS snap-in because I wanted to keep it simple. I wanted to make it as simple as possible, create a site by a few clicks. For extra features, we have always the IIS snap-in!

It will also update the HOSTS file, this way you will be able to access the sites by typing something like http://yousite rather than using http://localhost. This comes in handy to prevent problems with "temporary internet files" like CSS and JS, because you may use (like me) some global CSS files that are different for each site but have the same name.

For example: http://testsite1/global.css and http://testsite2/global.css.

If you don't use the HOSTS file to access the different sites by typing http://testsite1 and http://testsite2, you will have to access the two by typing http://localhost and therefore the file global.css will have the same URL for the two sites (http://localhost/global.css) and this may create some strange problems because the "temporary internet files" will think they are the same file.

This was annoying, so I started to manage the hosts file.

Image 3

Image 4

Windows XP lets you run only one site at a time, so there is an option to stop the running site before starting the new one.

Points of Interest

The points of interest will be in the "readers eyes", but for me it was the fact that I had a hard time to get information on how to do it with VC++.

You never know when you will need to create some crazy tool to access the IIS, lets say, in some Intranet for example. Imagine you have a server full of customer sites, and that you want your "tech people" to access the IIS in order to change something. I bet you will not want them to play around with all that IIS snap-in can offer, plus they would be consuming one of the (only) two precious Terminal Services Connections, or even more...

Imagine that your commercial department wants to be able to "cut" customer services for some reason. I guess you will never give them access to the servers, but you may not be always around to go to the server and stop/start a site every time they want.

So you may want to develop some kind of IIS back-office with a few options for them to access via browser... OK OK I can ear already someone saying that they can do it with .NET and that you don't need C++ for that. True, but that's not the point here, the point is that you may be like me, in love with ISAPIs, and if that's the case, every time something like this comes around we immediately think "what if... ISAPI...".

And this is the point... to point you to some code which is able to do it, if for some reason you are having a hard time guessing it up.

Granted that this is not an ISAPI, it still is in C++ and "binding" this code with an ISAPI will not be hard.

About this project, I want to say that I always stop the running site (if that option is active) prior to starting another, this is needed only in Windows XP because only one aite can be running at a time. And to start one, I have to stop the other, or the start command will fail. But the real problem appears when you delete the running site without stopping it before! You will not be able to start another site without a IISRESET or a reboot.

Warning

It has always worked for me , but I strongly suggest that you test it before you use. I did not test "every scenario"!!

History

03-03-2005 v1.7 First release.

License

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


Written By
Software Developer
Portugal Portugal
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralAdding multiple hosts to a site Pin
Member 19457918-May-05 19:59
Member 19457918-May-05 19:59 
GeneralRe: Adding multiple hosts to a site Pin
Max Santos19-May-05 2:30
Max Santos19-May-05 2:30 
GeneralIIS snap in Pin
Member 46317520-Apr-05 3:10
Member 46317520-Apr-05 3:10 
GeneralRe: IIS snap in Pin
Anonymous21-Apr-05 2:41
Anonymous21-Apr-05 2:41 
GeneralSSL is off ;o( Pin
Proxy4NT29-Mar-05 2:34
Proxy4NT29-Mar-05 2:34 
GeneralRe: SSL is off ;o( Pin
Max Santos29-Mar-05 9:10
Max Santos29-Mar-05 9:10 
GeneralExcellent tool! Pin
SirTrolle23-Mar-05 22:00
SirTrolle23-Mar-05 22:00 
GeneralRe: Excellent tool! Pin
Max Santos24-Mar-05 14:09
Max Santos24-Mar-05 14:09 
thanks.


SirTrolle wrote:
Would it be possible to have some host entries inserted and removed at runtime?
Maybe somekind of runtime sitename?


dont find any thing wrong, besides the fact that if you forget to stop the site you will be loding the local site by mistake.

however i think is best to allways develop web sites with relative URL's. and in that case this feature is not necessary.

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.