Debugging ISAPI with IIS Express

IIS Express is a version of Microsoft IIS designed for developers. Microsoft provides an overview of it at http://learn.iis.net/page.aspx/868/iis-express-overview/. This page indicates that it works well with ASP.NET and PHP. It can also be used to debug ISAPI web applications.

The place to start learning about IIS Express is: http://learn.iis.net/page.aspx/860/iis-express/. It doesn’t say much about using it with ISAPI applications. To start using it to debug ISAPI, follow the steps below:

With IIS Express, you can use the /config command line parameter to specify which applicationHost.config file to use. So we can create a specific applicationHost.config file for each ISAPI Web application project.

The easiest way to create a applicationHost.config file for your ISAPI project, is to copy the default one provided in the IIS Express installation and then modify it for your project. The default applicationHost.config file can be found in either \IISExpress\config\ or in \IIS Express\AppServer\

You should now be able to execute your ISAPI web application with a browser using port 8080.

The above should get you up and running. However you should be aware that in some cases, you can only debug applications when your debugger is running with Administrative privileges. For example, by default, your debugger needs Administrative privileges if you are using the standard port 80 or 443.

Scott Hanselman has written an excellent article which describes how to set up your IIS Express installation so that you can debug on port 80 or 443 or even use SSL certificates without requiring Administrative privileges.

http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx

More information can be found at the learn.iis.net IIS Express web pages, however the above steps combined with the information in Scott’s article should be enough to enable you to effectively use IIS Express to debug your ISAPI Web applications.