Mike Volodarsky's blog

Formerly the core server PM for IIS 7.0 and ASP.NET, now I run LeanSentry.
UPDATES: New troubleshooting guide released! Fix IIS website hangs →

Mike’s IIS7 modules – what’s coming next

During IIS7 development, I've written quite a few modules for IIS7 / ASP.NET.  Some of these were for various demos, others were to help out various internal and external customers, and others just because they were fun to write. 

Developing for IIS7 has been lots of fun for me because you can finally do a lot of the things you always wanted to do with IIS, but never could before or it was way too time consuming before.  Plus, it provided a great way to test the IIS engine and extensibility APIs as we were designing and developing the product, and found quite a bit of bugs.  The IIS7 test team labeled me a troublemaker for filing loads of product bugs that they later had to follow up on [H]  But, of course in the end it was well worth it, because we improved the quality of the product AND ended up producing some value for the community.

So far, I've posted just a few of these modules on my blog.  They are scattered all over the blog, and most are in various stages of a v1.0 release.  I've been trying to find some time to repackage some of these with source code, and upgrade them to v2.0 status by implementing the fixes and features that people have been asking for.

Here is what you can get to so far:

Stopping hot-linking with LeechGuard: A module that prevents other sites from hot-linking to your content and wasting your bandwidth.
vNext ASKS: Source Code!
Display pretty file icons in your ASP.NET applications with IconHandler: A handler that generates nice looking Windows shell icons for any extension / file.
vNext ASKS:
- Fix the directory with "."s bug.
- Pregenerate icon files on a client machine to be able to use icons on a server that doesnt have all the right icons. 
- Source Code!

Get nice looking directory listings for your IIS website with DirectoryListingModule: A module that replaces the boring IIS directory listings with a template of your choice, separating the directory listing functionality from the design of the template.  This way you can quickly build whatever template you want without worrying about how to implement the functionality.  My template also uses the IconHandler to show the file icons.
vNext ASKS:
- Show virtual sub-directories (not just physical sub-directories)
- File exclusion list
- Do not show hidden files

Redirect clients in your application with HttpRedirection module: Redirect clients in your application with regex rules that support substitution templates.
vNext ASKS:
- Where is my Mod_Rewrite? :)

IISSCHEMA.EXE - A tool to register IIS7 configuration sections: A tool for registering IIS7 configuration sections.
vNext ASKS: None

IIS Authentication plugin for the WordPress PHP blogging engine: A PHP plugin for WordPress to allow IIS authentication to be used instead of built-in WordPress authentication, so you can integrate the app with your existing site's authentication mechanism.
vNext ASKS: None

There are half a dozen others in the works, including one bigger one I may be putting on codeplex as an open source project.  I'll be posting some of these very soon, I promise :)

So, my question to you guys is, do you have any specific requests for any of the items above that I haven't mentioned?  Which ones would you like to see most? And finally, are there some specific modules you really really want to see?

I am hoping to use your feedback as a way to prioritize some of these, and actually put in the time to make the right thing happen.




IIS FastCGI and PHP: What you absolutely need to know to host PHP applications on IIS 6 and IIS 7

UPDATE: NOV 12, 2007: FastCGI RTM for IIS 6.0 / Windows Server 2003 is released on download center.

Everybody knows that IIS FastCGI is a great way to run PHP applications on IIS.

So, if you are looking to give FastCGI a try, where should you start?

The good news is that we've been making great strides at delivering a solid production experience for hosting PHP on IIS, for both IIS7 on Windows Vista/Windows Server 2008 and IIS6 / IIS5.1 on Windows Server 2003 and Windows XP.  This means that with high likelihood you can take advantage of this right away, even if you do not have access to the latest and greatest IIS7 build.

With all the coverage this work has been receiving, its starting to get out of hand.  Here is the information you absolutely need to know to get started:

If you run Windows Server 2003:

            Download the FastCGI RTM (released 11/12/2007)

            Docs at: www.iis.net/fastcgi

            My earlier blog post: FastCGI for IIS 6.0 is released on Download Center

If you run Windows XP:

            While the FastCGI RTM will work on Windows XP, it is not officially supported due to Microsoft software lifecycle policies.  I am bummed about it, but nothing we can do.  

            However, you should still be able to download and use it for development and testing on your XP machine (until you upgrade to Vista SP1).

If you run Vista:

            Download the FastCGI Techical Preview 2 release (released 1/31/2007).
            Starting with Vista SP1, and Windows Server 2008, FastCGI is no longer an out of band
            download, and is instead included with IIS7.  There will be no more out of band FastCGI updates
            for Vista.
            My earlier blog post: Turbo-charge your PHP applications with IIS FastCGI Technical Preview 2

            DOC: Installing PHP with the FastCGI technical preview.

If you run Vista SP1 beta or later:
If you run Windows Server 20058 BETA3, RC0, or later:

            FastCGI is built-in!
            My earlier blog post: The latest on the FastCGI project and PHP support on IIS

            DOC: Using FastCGI to host PHP applications on IIS7.

You also should download and try the latest PHP build available from www.php.net/downloads. Starting with PHP 5.2.1, Zend has worked together with us to significantly improve the performance of the PHP engine itself on Windows, in addition to the platform improvements provided by FastCGI.  The current build is 5.2.4. 

Be sure to download a non-thread-safe build flavor for use with FastCGI, as this will give you a significant boost over thread-safe builds needed for the PHP ISAPI.

Hopefully this helps make sense of what's available, and gets you on your way.  Be sure to come back to the blog for more PHP/FastCGI news/info.