Last week I had to deploy a WCF 4.0 REST service on an IIS 6 environment. When I ran this service locally everything worked perfect. In the route table I had configured that my service was accessible at http://localhost/servicename/.
But when i tried to call the service on the server environment, I got nothing back. I knew that IIS by default expects that a request can be mapped to a physical file on disk. So what I could have done was adding an SVC file. But I didn’t need an SVC file on my local machine. I wanted a better solution.
It took me some time but with these steps I got everything working as expected:
- Open the IIS manager. Right click on the VirtualDirectoryName where the service is installed and select Properties. On the Virtual Directory Tab click the Configuration Button. Insert a new WildCard Mapping C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll. Don’t forget to uncheck Verify that file exists.
- Go back to the Properties and open Directory Security Tab. In the Authentication and access control click the Edit Button. Uncheck Integrated Windows Authentication.
- Reset IIS(really important!).