Click here to Skip to main content
Click here to Skip to main content

Windows XP IIS Manager v1.7

By , 16 Mar 2005
 

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.

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)

About the Author

Max Santos
Software Developer
Portugal Portugal
Member
No Biography provided

Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
You must Sign In to use this message board.
Search this forum  
    Spacing  Noise  Layout  Per page   
Questionhow to enable or disable the parent path?memberlingdu9 Jan '12 - 15:18 
GeneralMy vote of 5memberMember 249360427 May '11 - 1:39 
GeneralHi, thanks friend, it's a great tool, but could you do more.memberBlueLoveCyn23 Apr '07 - 21:20 
GeneralThanks a lot !!!!!!!!!!memberVeeeeer13 Jan '07 - 3:21 
GeneralRe: Thanks a lot !!!!!!!!!!memberMax Santos14 Jan '07 - 7:07 
Generalconvert to vb.net or C#.netmemberhorhen2 Nov '06 - 4:14 
QuestionWhy not add a feature of " Application Protection "membermurphy.yang12 Sep '06 - 8:25 
QuestionDefault settings for new site creationmemberNeil Monroe4 May '06 - 10:21 
AnswerRe: Default settings for new site creationmemberMax Santos6 May '06 - 10:04 
GeneralRe: Default settings for new site creationmemberNeil Monroe17 May '06 - 5:41 
GeneralTerrific!memberpaddyincr5 Jan '06 - 8:29 
GeneralThank you!memberrico8312 Oct '05 - 9:33 
GeneralRe: Thank you!memberCoolVini14 Oct '06 - 6:14 
GeneralMinimize on system traymemberivanhalen16 Sep '05 - 12:27 
GeneralRe: Minimize on system traymemberMax Santos5 Oct '05 - 14:48 
GeneralRe: Minimize on system traymembertimgaunt3 Mar '06 - 0:44 
GeneralRe: Minimize on system traymemberMax Santos3 Mar '06 - 12:11 
GeneralMultiple web sites in IIS 5.1sussStefan Schreier14 Sep '05 - 7:42 
GeneralYou da man!memberonlyabill9 Sep '05 - 3:23 
GeneralRe: You da man!memberMax Santos9 Sep '05 - 10:51 
GeneralPerfect Tool =)memberBruno Oliva24 Aug '05 - 7:52 
GeneralRe: Perfect Tool =)memberMax Santos24 Aug '05 - 10:45 
QuestionStart sites at the same time?sussAnonymous7 Jul '05 - 6:11 
AnswerRe: Start sites at the same time?memberMax Santos7 Jul '05 - 11:00 
GeneralRe: Start sites at the same time?memberchallagulla21 Dec '05 - 18:08 

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

Permalink | Advertise | Privacy | Mobile
Web04 | 2.6.130516.1 | Last Updated 16 Mar 2005
Article Copyright 2005 by Max Santos
Everything else Copyright © CodeProject, 1999-2013
Terms of Use
Layout: fixed | fluid