Click here to Skip to main content
11,430,402 members (75,978 online)
Click here to Skip to main content
Technical Blog

Solve IIS 8 Error: Could not load type ‘System.ServiceModel.Activation.HttpModule’

, 30 Jun 2013 CPOL
Rate this:
Please Sign up or sign in to vote.
How to solve "Could not load type 'System.ServiceModel.Activation.HttpModule’ IIS 8 error

Introduction

I encountered an error when I was deploying my WebSocket server application which targeted .NET 4.5 to Windows Server 2012 plus IIS 8. It was an exception shown in browser whenever I tried to open a web page. The exception said:

"Could not load type ‘System.ServiceModel.Activation.HttpModule’ from assembly
 'System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'"

When I was working on IIS 7.5, I heard about this problem and knew the cause: the default configuration in applicationHost.config (in C:\Windows\System32\inetsrv\config) declared two conflicted modules and two conflicted handlers:

<modules>
  <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, 
  System.ServiceModel, Version=3.0.0.0, Culture=neutral, 
  PublicKeyToken=b77a5c561934e089" preCondition="managedHandler" />
  <add name="ServiceModel-4.0" type="System.ServiceModel.Activation.ServiceHttpModule, 
  System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, 
  PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
</modules>
<handlers>
  <add name="svc-Integrated" path="*.svc" verb="*" 
  type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, 
  Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode" />
  <add name="svc-Integrated-4.0" path="*.svc" verb="*" 
  type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, 
  System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, 
  PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>

As we know, applicationHost.config contains the root settings for all web sites and web applications on the server. Therefore, any web application would have all the four conflicted modules and handlers loaded by default. “ServiceModel” and “svc-Integrated” were for .NET Activation 3.x while “ServiceModel-4.0” and “svc-Integrated-4.0” were for .NET Activation 4.x. Unfortunately, the 3.x items were declared before the 4.x items. That was why the exception occurred for a .NET 4.x web application!

Then how did such a situation happen? On Windows Server 2008, it could happen when you install .NET 3.x framework or IIS 7.5 with Activation features after .NET framework 4.x is installed. However, on Windows Server 2012, it always happens when you install .NET framework 3.x with Activation features.

Microsoft officially announced the solution (http://support.microsoft.com/kb/2015129) for Windows Server 2008 plus IIS 7.5: manually running “aspnet_regiis.exe /iru” for .NET framework 4.x (in C:\Windows\Microsoft.NET\Framework\v4.0.30319 or C:\Windows\Microsoft.NET\Framework64\v4.0.30319). However, aspnet_regiis.exe is not allowed to run for IIS 8. I tried manually changing applicationHost.config. I also tried removing and adding features in a good order. But all these solutions did not work.

The final solution was to delete the 3.x module and handler from IIS manager. You could delete them at the application or site level if you want to keep them in applicationHost.config. But I wanted to delete them from applicationHost.config. So I did the following steps:

  1. In IIS manager, click the machine name node.
  2. In “Features View”, double-click “Modules”.
  3. Find “ServiceModel” and remove it.

  4. Go back to the machine name node’s “Features View”, double-click “Handler Mappings”.
  5. Find “svc-Integrated” and remove it.

Now everything works well.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Zhuyun Dai
Architect
China China
Over 10-years experience in using Microsoft technologies.
At present, working as the architect of a clustered real-time data delivery and visualization system, responsible for the design of component architecture, product packaging and deployment, also targeting private cloud solutions for future.
Follow on   LinkedIn

Comments and Discussions

 
Questiontnx! int Work but what if ... Pin
Sir JeSon24-Mar-15 6:10
professionalSir JeSon24-Mar-15 6:10 
QuestionIIS on Win 8.1 Enterprise - Works! Pin
Member 843722124-Mar-15 5:22
memberMember 843722124-Mar-15 5:22 
QuestionIt worked for me as well thank you!! Pin
Ioannis Papaioannou5-Mar-15 15:31
memberIoannis Papaioannou5-Mar-15 15:31 
AnswerIt worked for me Pin
ericardezp14-Jan-15 7:32
memberericardezp14-Jan-15 7:32 
Generalit works for me Pin
Оксана Липанова3-Dec-14 4:02
memberОксана Липанова3-Dec-14 4:02 
Generalit worked for me :) Pin
shubhampareta31-Oct-14 23:35
membershubhampareta31-Oct-14 23:35 
QuestionI did it. Pin
19871986622-Aug-14 3:30
member19871986622-Aug-14 3:30 
QuestionYes this worked. Pin
Muhammad Zaheer Nazir23-Jun-14 3:41
memberMuhammad Zaheer Nazir23-Jun-14 3:41 
GeneralThanks! Pin
capitan_cavernicola19-Feb-14 0:42
membercapitan_cavernicola19-Feb-14 0:42 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.150428.2 | Last Updated 1 Jul 2013
Article Copyright 2013 by Zhuyun Dai
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid