Cannot serve WCF services in IIS on Windows 8

WcfIisWindows 8

Wcf Problem Overview


When I try to serve a WCF service on IIS in a Windows 8 machine, I get the well known error

> The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.

The old work around was to run aspnet_regiis -i but this command seems to have been deprecated in Windows 8 yielding response This option is not supported on this version of the operating system. (...).

What would be the work around?

(I have successfully enabled regular aspx pages already, so most of the IIS config seems healthy.)

Wcf Solutions


Solution 1 - Wcf

Seemed to be a no brainer; the WCF service should be enabled using Programs and Features -> Turn Windows features on or off in the Control Panel. Go to .NET Framework Advanced Services -> WCF Services and enable HTTP Activation as described in this blog post on mdsn.

From the command prompt (as admin), you can run:

C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /FeatureName:WCF-HTTP-Activation45

If you get an error then use the below

C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation
C:\> DISM /Online /Enable-Feature /all /FeatureName:WCF-HTTP-Activation45

Solution 2 - Wcf

For Windows Server 2012, the solution is very similar to faester's (see above). From the Server Manager, click on Add roles and features, select the appropriate server, then select Features. Under .NET Framework 4.5 Features, you'll see WCF Services, and under that, you'll find HTTP Activation.

Solution 3 - Wcf

Please do the following two steps on IIS 8.0

Add new MIME type & HttpHandler

  1. Extension: .svc, MIME type: application/octet-stream

  2. Request path: *.svc, Type: System.ServiceModel.Activation.HttpHandler, Name: svc-Integrated

Solution 4 - Wcf

You can also achieve this by Turning windows feature ON. enter image description here enter image description here

Solution 5 - Wcf

This is really the same solution as faester's solution and Bill Moon's, but here's how you do it with PowerShell:

Import-Module Servermanager
Add-WindowsFeature AS-HTTP-Activation

Of course, there's nothing stopping you from calling DISM from PowerShell either.

Solution 6 - Wcf

you can add this code to web.config in asp mvc

   <system.webServer>
    <staticContent>
      <remove fileExtension=".srt" />
      <mimeMap fileExtension=".srt" mimeType="text/srt" />
      <remove fileExtension=".vtt" />
      <mimeMap fileExtension=".vtt" mimeType="text/vtt" />
    </staticContent>
  </system.webServer>

you can change file extension with your file extension

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionfaesterView Question on Stackoverflow
Solution 1 - WcffaesterView Answer on Stackoverflow
Solution 2 - WcfBill MoonView Answer on Stackoverflow
Solution 3 - WcfJeneesh VelayudhanView Answer on Stackoverflow
Solution 4 - WcfMohit DharmadhikariView Answer on Stackoverflow
Solution 5 - WcfJamesQMurphyView Answer on Stackoverflow
Solution 6 - Wcfmalik masisView Answer on Stackoverflow