September 8, 2009
The Error Pages icon was missing from Internet Information Services Manager on my Vista machine.
This feature will need to be turned on in Windows Features:
Control Panel > Programs and Features > Turn Windows features on or off
Check the box next to:
Internet Information Services > World Wide Web Service > Common Http Features > HTTP Errors.
September 8, 2009
Unable to start debugging on the web server.
Server side-error occurred on sending debug HTTP request. Make sure the server is operating correctly. Verify there is no syntax errors in the web.config by doing a Debug.Start without Debugging. You also want to refer to the ASP.NET and ATL Server debugging topic in the online documentation.
Microsoft Vista Business, IIS 7.0, Visual Studio 2005
I was getting this error whilst trying to debug a Visual Studio 2005 .NET v2.0 project which uses the local IIS rather than the built in Visual Studio Development Server.
I tried many things to fix this error, permissions, updates, reg_iis, etc. However what worked for me was by changing the Application Pool for my application from DefaultAppPool to Classic .NET AppPool.
Why does this work? By default the DefaultAppPool runs in Integrated Managed Pipeline Mode and the Classic .NET AppPool runs in Classic Managed Pipeline Mode.
Integrated Managed Pipeline Mode
This is new in IIS 7.0 and essentially wraps IIS and ASP.NET into one process model.
Classic Managed Pipeline Mode
This is backwards compatibility mode for IIS 7.0 and handles requests in an IIS 6.0 worker process. IIS and ASP.NET are separated.
So why did this break my app?
My app was originally upgraded from an earlier version of .NET to .NET 2.0 and so is not IIS 7.0 compliant. I will need to migrate it so it can utilise the new integrated mode in IIS 7.0. This migration process is documented here.
The HTTP Error I was receiving was 500.24. By following the article above all I needed to do to add the below to the web.config and now my app runs correctly in Integrated Managed Pipeline Mode.
<validation validateIntegratedModeConfiguration=”false” />