Book Review: Professional IIS 7 by Ken Schaefer and others
People often ask me how I like Vista and whether I think it’s better than Windows XP or not. My standard reply is that I would have switched to Windows Vista for IIS 7 alone (I also do like many other Vista features, and thus prefer Vista over XP but that’s beside the point here). In my opinion, IIS 7 is in many respects a lot better than its predecessor IIS 6 which runs on Windows XP and Server 2003. Besides the many new features that IIS 7 brings, it has one big advantage over the version running on Windows XP: it allows you to create multiple web sites that can run at the same time. No more messing around with tools like IIS Admin Pro although it was extremely useful in working around the limitations of IIS on Windows XP.
But with a new release of a complex piece of software as IIS is also comes the need for more knowledge and background information of the product. This is where the Wrox book Professional IIS 7 written by Kevin Schaefer et al proved to be very useful.
The book is primarily aimed at administrators who manage Windows server running IIS 7. However, I’d also recommend the book to developers as they’ll get a firm grasp of what goes on in the web server they’re developing against. As an administrator, it’s useful if you can read (or better yet, write) programming code as the book contains many code examples that show you how to create, edit and manage your IIS web sites (and more) through code and command line tools. (In fact, it’s always useful to be able to read and write code as an administrator, so you can make your life easier using the “Hey Scripting Guy” columns.) As a developer, be prepared to learn a lot about how IIS works, and how to operate it, but don’t expect too much in the field of actually developing web sites that will eventually run on IIS.
The book contains 20 chapters and is split over four parts. The first four chapters deal with topics like the history of IIS and compare the way the various flavors of IIS have worked in the past and how IIS 7 works now. You’ll also learn more about the IIS architecture, with important sections on application pools, worker processes and the new “integrated pipeline mode” that allows you to deeply integrate your own managed .NET code into IIS. The chapter on planning is useful in helping you to determine requirements for things like software, hardware, network, and firewalls.
The installation process of IIS 7 is pretty straightforward and you’ll probably be able to install IIS 7 yourself without a lot of instructions. However, if you’ve never installed IIS 7 before you may appreciate the large number of screenshots from the installation process in chapter 4. To me, the added value of that chapter was in the second half of the chapter where you learn how to create IIS sites, application pools, users and how to set permissions using command line tools and .NET code. Useful as that section was, I am not sure I understand what it did there as large parts of chapter 5 and 6 are dedicated to programmatically creating IIS objects. The chapter on installation closes off with some very useful tips on shared configuration which comes in handy if you’re responsible for setting up or managing web farms.
The second section of the book contains a number of chapters that deal with web site administration. You’ll learn how to create new sites, application pools and many other necessary IIS objects, both through the user interface and through .NET code and command line tools like appcmd.exe. You’ll also see how to use the new configuration file system that allows you to manage your IIS sites using simple XML based config files. This is also one of my favorite new IIS features as it allows you to copy IIS settings (site settings, users, permissions and more) from your development machine to a production server (or from a backup file to a restored web site for example, no more messing with metabase backups). Being a developer, I liked this section a lot. I was able to quickly create a .NET application that allows me to create brand new and consistently configured web sites on my Windows Vista machine with the press of a button; something that comes in handy with the many Dynamicweb CMS web sites I run locally. I also found the chapter on the FTP Server quite useful. Since the out-of-the-box version of the FTP Server requires a fixed naming and directory structure it’s good to see all the strict requirements clearly listed. Also, the new FTP Server that can be downloaded from www.iis.net is discussed in detail. The only thing I wish the book had included was a walkthrough of setting up a separate FTP site with a number of users accessing specific parts of the server. For example, you may want to have an FTP server unrelated to any of your web sites, (like ftp.yourdomainname.com) and then grant yourself full control to the Inetpub folder, while providing access to one or more other folders for other users, preferably using non-domain accounts. While such a setup is possible and reasonable (and often extremely easy to do with commercial FTP servers), the book won’t really help you figure out how to do it.
Chapter 11 and 12 show you how to extend the web server by writing your own modules using both managed and unmanaged code. If you’re wanting to write integrated modules for IIS using all of its new features, this will definitely whet your appetite, although you’ll need to look for dedicated books on the subject to get a better understanding of the whole subject.
The book also contains a number of chapters on security, covering both the security of your server as your own applications using the various authentication mechanisms (Windows, basic, forms and so on) and SSL. Whether you’re new to IIS 7 or not, be sure to take a good look at these chapters to get a solid understanding of security in IIS. The last part of the book contains a few remaining subjects, including load balancing web farms, programmatic configuration and management and two chapters on monitoring, performance tuning, diagnostics and trouble shooting.
Overall, Professional IIS 7 is a very solid book on administrating IIS 7. Ken Schaefer and the other authors have done a great job in bringing a lot of knowledge on IIS together in one book. The book is generally concise, contains few errors and contains a lot of useful information, examples and code snippets to help you better install, manage and use your new IIS 7. I’d give the book 4.5 out of 5 stars.
Where to Next?
Wonder where to go next? You can post a comment on this article.
Links in this Document
Talk Back! Comment on Imar.Spaanjaars.Com
I am interested in what you have to say about this article. Feel free to post any comments, remarks or questions you may have about this article. The Talk Back feature is not meant for technical questions that are not directly related to this article. So, a post like "Hey, can you tell me how I can upload files to a MySQL database in PHP?" is likely to be removed. Also spam and unrealistic job offers will be deleted immediately.
When you post a comment, you have to provide your name and the comment. Your e-mail address is optional and you only need to provide it if you want me to contact you. It will not be displayed along with your comment. I got sick and tired of the comment spam I was receiving, so I have protected this page with a simple calculation exercise. This means that if you want to leave a comment, you'll need to complete the calculation before you hit the Post Comment button.
If you want to object to a comment made by another visitor, be sure to contact me and I'll look into it ASAP. Don't forget to mention the page link, or the Doc ID of the document.
Please correct the following errors:
Unfortunately, something went wrong and your message or comments have not been submitted successfully.
There's a fair chance things broke down because you tried to post something that looks like HTML. Things that look like HTML include (X)HTML, obviously, XML, ASP.NET markup and c# generics syntax as all of them use the < and > characters.
If that's the case, try altering your message and remove anything that looks like an angled bracket. You can replace them with [ and ] for example so you can still make it look like HTML to some extend.
If, on the other hand, you were trying to spam this web site, I am pretty glad I caught you in the act and stopped you from doing so ;-)
Also, please don't use links in your posts; I had to block them to filter out most of the junk mail I am receiving.
The number you entered is not correct. Please enter the sum of the two numbers again.