IIS Hosted Service Fails
If an IIS hosted service fails you may see any of the following symptoms:
-
When browsing to a .svc file, the file is not recognized, the browser shows a blank page, or the text of the file is displayed instead of the service's help page as in the following example.
<%@ServiceHost language=c# Debug="true" Service="Microsoft.ServiceModel.Samples.CalculatorService" %>
-
When attempting to access a Web-hosted service, you may encounter the following exception.
This typically occurs if ASP.NET is not installed or the .svc file type is not mapped to the aspnet_isapi.dll.Unhandled Exception: System.ServiceModel.ProtocolException: The remote server returned an unexpected response: (405) Method not allowed.
To correct this you must make sure that aspnet_isapi is enabled as a Web service extension for IIS. You can view and modify this setting using IIS Manager, or by runningaspnet_regiis –i –enablefrom the .NET Framework installation directory. Once you have done so, verify that ASP.NET is running. To do so, place a test .aspx file in the \inetpub\wwwroot directory, and make sure it can be browsed with a browser.
-
If you installed IIS after Windows Communication Foundation (WCF) was installed you must run the following command.
This registers the required script maps in IIS."%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r
You must also make sure that the .svc file type is mapped to aspnet_isapi.dll.
-
From the Start menu, right-click Computer, then click Manage.
-
Expand Services and Applications, Internet Information Services.
-
Right-click Web Sites and select Properties.
-
On the Home Directory tab, click Configuration.
-
In the list of application mappings, verify that the .svc file is mapped to the aspnet_isapi.dll. If the file has not been mapped:
-
Click Add.
-
In the Add/Edit Application Extension Mapping dialog box, click Browse.
-
Browse to the folder that contains the aspnet_isapi.dll, select the file, then click Open.
-
Specify .svc as the extension.
-
Make sure Check that file exists is unchecked.
-
Click OK, and OK again to return to the Web Sites Properties dialog box.
Caution:
If the OK button is disabled, select the textbox where the selected filename is displayed and the OK button will be enabled.
-
Click Add.
-
Click OK to close the dialog box.
-
Open a command prompt window and type start inetmgr to open the Internet Information Services (IIS) MMC snap-in.
-
In the left pane, expand the node with the computer's name, then expand the Web Sites node, and then select the Default Web Site.
-
Double-click Handler mappings in the Features View.
-
In the list of application mappings, verify that the .svc file is mapped to the aspnet_isapi.dll. If the file has not been mapped:
-
Click Add Managed Handler.
-
Type *.svc into the Request path:.
-
Type System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 into the Type textbox.
-
Type svc-Integrated into the Name: textbox.
-
Click OK.
-
Click Add Script Map.
-
Type *.svc into the Request path:.
-
Type %SystemRoot%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll into the Executable: text box.
-
Type svc-ISAPI-2.0 into the Name: text box.
-
Using the Move Up/Move Down controls, ensure that the managed handler (svc-Integrated) appears before the aspnet_isapi (svc-ISAPI-2.0) handler in the list.
-
Click OK.
-
Click Add Managed Handler.
See Also
- 5/14/2012
- Manabu Tokunaga
Launch IIS Manager, select the Default Web Site (or other web site having this problem), open Handler Mappings, click Revert to Parent.
Before doing this, you may want to examine the Entry Type column of the Handler Mappings view to see if there are any that are not Inherited, since those might be related to the product that disconnected inheritance in the first place. One thing that can disconnect the inheritance is changing the order of the handlers.
- 8/9/2011
- pkeairnes
Does anyone know if you have to do both Framework and Framework64, or is one sufficient?
"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r"%WINDIR%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r
"%WINDIR%\Microsoft.Net\Framework64\v3.0\Windows Communication Foundation\ServiceModelReg.exe" -r
- 8/2/2011
- Jason H - SQL
Executable: c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
Extension: .svc
Verbs: Limit to option: GET,HEAD,POST,DEBUG
Please type the verb to get the OK button.
Restart IIS to see .svc files getting served.
I have taken this and simplified it from Martin Vollmer's blog.
you can also go to: http://blogs.msdn.com/martinv/archive/2006/09/11/749388.aspx for the original version.
(Edited by Luke Puplett; removed gt/lt symbols causing HTML bold markup to corrupt this page)
- 9/5/2008
- leo1918
- 1/26/2010
- LukePuplett
The page you are requesting cannot be served because of the extension configuration
Credit to Rahul Johri in Hyderabad.
- 1/26/2010
- LukePuplett
I had the same problem outlined above, i.e. svc files just showing their literal contents when opened in a browser. I eventually managed to solve the problem after I realised that the steps mentioned above for the Web Sites node (Right-click Web Sites and select Properties...) then needs to be repeated for any virtual directories you want to configure. You need to make sure the .svc mapping is there globally and for each specific virtual directory.
Step 5c is incomplete. IIS 5.1 also requires you to click on the filename after selecting it and before you click OK (the OK button will be disabled until you click on the filename in the textbox).
(Conclusion: Microsoft have NEVER tested this process under IIS 5.1)
Also, the current location of the DLL is: C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
This may change with post 3.5 framework but I'm sure you can find it from there. I don't know why Microsoft withheld the locaiton of the file. They decide where to put it and don't inform the user during installation.
Also, just for completeness but I'm sure most of you will know this, the Computer Management facility (in XP) is accessed via 'My Computer' (in the Desktop folder), not from the Control Panel as indicated by this article.
- 3/31/2008
- Matthew Langley
- 10/20/2008
- Y2KPRABU
Believe me this solved my problem I was struggling with since 3 and a half weeks, yelling, crying and writting all sort of messages with images on Silverlight forum about WCF Service not working outside VS 2008 Please, make it as an automated process in the installation of VS2008 and/or Silverlight SDK or whatever because small people like me do not know those technical settings.
- 8/16/2008
- Marc Roussel
- 6/24/2008
- Markus von und zu Heber