After setting up a new Windows 7 computer with IIS 7.5 and Visual Studio 2010, I tried to start my ASP.NET 4.0 website using the Local IIS web server. However, right off the bat I was hit with the following IIS error message:
HTTP Error 500.21 - Internal Server Error Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.
I knew the website worked correctly, because it ran fine in the Visual Studio Development Server, just not in IIS 7. Apparently, the reason I was recieving the Internal Server error message was that I had installed SQL Server 2008, after installing Visual Studio 2010, and because of this it corrupted the IIS Machine level configuration files ("If you install VS2010 and then install VS2008 and VS2008 SP1, the configuration files for ASP.NET in IIS only include about 1/2 of the correct .Net 4.0 configuration sections." read more here).
To repair this problem I ran a full silent repair of the .NET Framework 4.0. Here's how on either a 32 bit or 64 bit computer:
- Click Start -> All Programs -> Accessories -> Run
- In the Open textbox paste in the following line (see list of all .NET Framework version install, repair and unistall command lines here):
For silent repair on 32 bit computer with .Net Framework version 4.0.30319 use:
%windir%\Microsoft.NET\Framework\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart
For silent repair on 64 bit computer with .Net Framework version 4.0.30319 use:
%windir%\Microsoft.NET\Framework64\v4.0.30319\SetupCache\Client\setup.exe /repair /x86 /x64 /ia64 /parameterfolder Client /q /norestart
- Click OK to start the repair
- After, the repair ran for a few minutes, I restarted IIS 7.5, and things began to work correctly!
Hopefully, that will work for you...
Some people also seem to be having success correcting this error by running aspnet_regiis.exe. I initially tried this and it did not work for me, but feel free to give it a shot. (Keep in mind for the example below I have .Net Framework version 4.0.3.0319 installed on my computer, but you may need to change directory version to what is installed on your computer): Here's how to run aspnet_regiis.exe:
- Run "aspnet_regiis.exe" program from command line (within Command Prompt):
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –i
If you want to open it using the Run program, just type in "Run" in the Windows 7 search box, then use the following line below in the Open box, then click OK:
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe –i
Note if your computer is 64 bit, then I would change the line to:
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe –i
Hopefully, these solutions help get you up and running and fix the IIS7 error... Handler "PageHandlerFactory-Integrated" has a bad module "ManagedPipelineHandler" in its module list.
UPDATE (6-16-2014): The solutions above didn't work for my on a new Windows Server 2008 box that I was setting up, which had pre-installed SQL Server 2008, which I then installed SQL Server 2014. What finally worked for me, was removing SQL Server 2008, then doing a repair of the .NET Framework (latest version 4.5.1) from: Control Panel -> Programs -> Programs and Features -> then right-click on "Microsoft .NET Framwork 4.5.1" and click Uninstall/Change" -> then go through the Repair prompts -> and restart your computer or server. This seemed to do the trick. (Also, I did remove a previous version of "Microsoft .NET Framework 4.5 Multi-Targeting Pack", but I'm not sure if that had any impact on solving the issue. I think the real problem lies with SQL Server 2008 and it somehow screwing up the .NET Framework.
See Microsoft's solution here: http://msdn.microsoft.com/en-us/library/hh168535(v=nav.71).aspx
You may want to download the Microsoft .NET Framework Repair Tool here: http://www.microsoft.com/en-us/download/details.aspx?id=30135