282

I'm trying to get a WCF service running in IIS8 on Windows Server 2012 build 8400.

When installing the web role the WCF stuff (under 3.51) wasn't to be found like in Windows Server 2008.

When installed the svc handler mapping was missing, so i did a:

%windir%\Microsoft.NET\Framework\v3.0\WindowsCommunication Foundation\ServiceModelReg.exe –i

Now the handler mapping is there, but I still get:

The resource you are looking for does not have a handler associated with it.

(I removed the static file handler.)

The site is using the classic pipeline in order to use impersonation.

Anatoly
  • 10,157
  • 3
  • 13
  • 28
Carl R
  • 7,760
  • 4
  • 41
  • 76

12 Answers12

574

More specifically:

  1. Run Server Manager (on task bar and start menu)
  2. Choose the server to administer (probably local server)
  3. Scroll down to "Roles and Features" section.
  4. Choose "Add Role or Feature" from Tasks drop down
  5. On "Add Role or Feature Wizard" dialog, click down to "Features" in list of pages on the left.
  6. Expand ".Net 3.5" or ".Net 4.5", depending on what you have installed. (you can go back up to "roles" screen to add if you don't have.
  7. Under "WCF Services", check the box for "HTTP-Activation". You can also add non-http types if you know you need them (tcp, named pipes, etc).
  8. Click "Install" Button.
Brian Jimdar
  • 5,766
  • 1
  • 13
  • 3
  • 6
    This one didn't work in my case because I'm on Windows 8 (with IIS 8). – Josh Mouch Oct 25 '12 at 15:06
  • 9
    If you first ran ServiceModelReg.exe –i from the v3.0 directory, you need to also run ServiceModelReg.exe –ua to undo it before this will work. – Scott Anderson Mar 01 '13 at 19:47
  • 16
    From the command line: dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation /All – Richard Nov 05 '13 at 13:47
  • 4
    What is about http://gyorgybalassy.wordpress.com/2012/09/24/publishing-a-wcf-service-on-iis8/ ? which is better way ? – Kiquenet Dec 19 '13 at 09:00
  • 2
    I needed to restart the server =( – Akira Yamamoto Jan 28 '14 at 13:04
  • Josh - this worked for me with IIS 8.5 on Windows 8.1. – Ryan Shripat Jun 23 '14 at 15:04
  • @GWTF -- you were right -- that's what I was missing; I used `ServiceModelReg.exe -u` to uninstall it from the v3.0 directory, and the features I added earlier (using the steps in the answer) just worked. – BeemerGuy Sep 24 '14 at 09:02
  • In my case, this got IIS to serve the *service* url - the actual .svc file, like http://example.com/service.svc but not the *methods* like http://example.com/service.svc/Method?Parameter=1. If anyone else has this problem, check your bindings, see this question: http://stackoverflow.com/questions/26398049 – MGOwen Oct 24 '14 at 00:01
  • Had to enable the HTTPS binding for the site as well. – Erick Smith Dec 01 '14 at 16:24
  • 9
    I was literally staring at the "Server Roles" page for an hour. I had no idea you could just click "Next" or click down to "Features" on the left. o_O +1 – Dan Bechard Apr 06 '15 at 19:19
  • I'd put two upvotes if it were possible ;). In my case it was migrated webservice from 2008 to 2012 R2 server. Thanks! – Jack0fshad0ws Apr 25 '16 at 04:33
  • 3
    Works for IIS 10 on Server 2016 too – Vaelen May 08 '17 at 05:12
  • Thanks! Works on Windows Server 2016 with iis 10 too!))) – Vladislav Aug 31 '17 at 16:15
  • From powershell: ServerManager\Install-WindowsFeature NET-WCF-HTTP-Activation45 – gigi Jun 08 '18 at 15:30
222

I had to enable HTTP Activation in .NET Framework 4.5 Advanced Services > WCF Services

Enable HTTP Activation

joshcomley
  • 26,135
  • 21
  • 102
  • 140
45

turn ON the following on 'Turn Windows Features on or off'

a) .Net Framework 3.5 - WCF HTTP Activation and Non-Http Activation

b) all under WCF Services

Richard Ev
  • 48,781
  • 54
  • 181
  • 273
Dino
  • 459
  • 4
  • 3
40

Windows 8 with IIS8

  • Hit Windows+X
  • Select Programs and Features (first item on list)
  • Select Turn Windows Features on or off on the left
  • Expand .NET Framework 4.5 Advanced Services
  • Expand WCF Services
  • Enable HTTP Activation
Community
  • 1
  • 1
Simon_Weaver
  • 120,240
  • 73
  • 577
  • 618
28

I prefer to do this via a script nowadays

REM install the needed Windows IIS features for WCF
dism /Online /Enable-Feature /FeatureName:WAS-WindowsActivationService
dism /Online /Enable-Feature /FeatureName:WAS-ProcessModel
dism /Online /Enable-Feature /FeatureName:WAS-NetFxEnvironment
dism /Online /Enable-Feature /FeatureName:WAS-ConfigurationAPI
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

REM Feature Install Complete
pause
Jon
  • 4,255
  • 5
  • 44
  • 55
  • 2
    Thanks `dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation dism /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45` were sufficient for me ... – Shubh Feb 10 '15 at 12:55
  • This is the best way to fix this on a new 2012R2+ version of Windows Server. Probably works on 2012 as well but thankfully, I don't have anymore of those to try this out on. – Paul Sturm Apr 03 '17 at 21:03
  • and using ***PowerShell*** _script_ ? – Kiquenet May 29 '18 at 08:28
  • @Kiquenet These commands will all work in powershell. If you attempted to copy over Shubh's command directly you need to add a line break or semicolon after the first command before the second dism command. – kb4000 Jun 18 '20 at 17:04
10

We managed to solve the error under Windows Server 2012 by:

  1. Removing from "Remove Roles and Features Wizard" .NET Framework 4.5 Features/ASP.NET 4.5 and all its dependent features
  2. Re-installing the removed features.

It seems the order of installation is the cause.

Also, make sure you have HTTP Activation installed under WCF Services.

Radu Damian
  • 921
  • 9
  • 8
  • I did this and seem to have killed my server. I only uninstalled the asp.net stuff under iis, but now when I remote in I get a black screen and a command prompt window, like the server is only "server core" now... :( – MGOwen Oct 15 '14 at 05:21
  • @MGOwen when you remove some of the features of .net 4.5 it looks like it also removes the Server Graphical Shell, this can be added again with some commands. – John Jul 07 '15 at 18:59
3

For Windows 8 machines there is no "Server Manager" application (at least I was not able to find it).

Though I was able to resolve the problem. I'm not sure in which sequence I did the following operations but looks like one/few of following actions help:

  1. Turn ON the following on 'Turn Windows Features on or off' a) .Net Framework 3.5 - WCF HTTP Activation and Non-Http Activation b) all under WCF Services (as specified in one of the answers to this question)

  2. executed "ServiceModelReg.exe –i" in "%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\" folder

  3. Registered ASP.NET 2.0 via two commands ( in folder C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727):

    aspnet_regiis -ga "NT AUTHORITY\NETWORK SERVICE" aspnet_regiis -iru

  4. Restarted PC... it looks like as a result as actions ## 3 and 4 something got broken in my ASP.NET configuration

  5. Repeat action #2

  6. Install two other options from the "Programs and Features": .Net Framework 4.5 Advanced Services. I checked both sub options: ASP.NET 4.5 and WCF services

  7. Restart App Pool.

Sequence is kind of crazy, but that helped to me and probably will help to other

mvp
  • 94,368
  • 12
  • 106
  • 137
Budda
  • 16,990
  • 33
  • 113
  • 197
2

Order of installation matters a lot when configuring IIS 8 on Windows 8 or Windows Server 2012.

I faced lot of issues configuring IIS 8 but finally these links helped me

Sunil Agarwal
  • 3,653
  • 5
  • 38
  • 73
2

using PowerShell you can install the required feature with:

Add-WindowsFeature 'NET-HTTP-Activation'
oɔɯǝɹ
  • 6,783
  • 7
  • 53
  • 65
Owais F
  • 45
  • 1
  • 7
2

On windows 10 (client) you can also script this using

Enable-WindowsOptionalFeature -Online -NoRestart -FeatureName WCF-HTTP-Activation45 -All

Note that this is a different command from the server skus

aL3891
  • 5,909
  • 2
  • 30
  • 37
0

It's HTTP Activation feature of .NET framework Windows Process Activation feature is required too

Max
  • 109
  • 1
  • 4
0

This was a really silly one for me. Adding this here as it's one of the more popular threads on svc 404 issues.

I had in my Project Settings' \ Web \ Project URL, pasted:

http://blah.webservice.local.blahblah.com/Blah.svc

And for some unknown reason (having done this a thousand times) didn't spot straight away that the name of the .svc file was at the end.

DOH!

I had just pasted the address from my WCF test client and hadn't checked it sufficiently. What this did in the background was create an IIS application at the .svc address and I was getting nothing out of IIS. I couldn't work out how I couldn't even hit the .svc file.

Simple fix, obviously, just remove the application in IIS and change the project URL.

After almost 20 years at this, you can still make schoolboy errors / rookie mistakes. Hope this helps someone.

Moby's Stunt Double
  • 2,500
  • 1
  • 14
  • 31