HTTP 404 when accessing .svc file in IIS
I recently created a WCF service that works fine when tested from Visual Studio 2008. but when I deploy the project to IIS and I try to access the .svc file from I开发者_开发知识库IS, I get this error :
"Server Error in '/' Application.The resource cannot be found. "
I've been having this issue for the past 4 days .
in the Handler Mappings of IIS Manager, I can see two entries for .svc :
svc-Integrated and svc-ISAPI-2.0
What worked for me, On Windows 2012 Server R2:
Thanks goes to "Aaron D"
You need to add a mapping for the SVC extension to ASP.NET. The easiest way to do this is to run ServiceModelReg.exe -i
from C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation. You may also need to enable ASP.NET if you haven't already done so.
If you are using Windows Server 2012 or 2016, follow these instructions instead:
- WCF on IIS8; *.svc handler mapping doesn't work
I found these instructions on a blog post that indicated this step, which worked for me (Windows 8, 64-bit):
Make sure that in windows features, you have both WCF options under .Net framework are ticked. So go to Control Panel –> Programs and Features –> Turn Windows Features ON/Off –> Features –> Add Features –> .NET Framework X.X Features. Make sure that .Net framework says it is installed, and make sure that the WCF Activation node underneath it is selected (checkbox ticked) and both options under WCF Activation are also checked.These are: * HTTP Activation * Non-HTTP Activation Both options need to be selected (checked box ticked).
I see you've already solved your problem - but for posterity:
We had a similar problem, and the SVC handler was already correctly installed. Our problem was the ExtensionlessUrl handler processing requests before they reached the SVC handler.
To check this - in Handler Mappings in IIS Manager at the web server level, view the list of handlers in order (it's an option on the right-hand side). If the various ExtensionlessUrl handlers appear above the SVC handlers, then repeatedly move them down until they're at the bottom.
None of the above solutions resolved this error for me. I had to set the following in web.config:
system.servicemodel > bindings > webHttpBinding > binding:
<security mode="Transport">
<transport clientCredentialType="None" />
</security>
I would like to take this opportunity to CURSE Microsoft once again for creating such a huge mess with the .NET Framework and making developer lives so miserable for so long!
Verifies that you directory has been converted into an Application is your IIS.
I've had the same problem today.
For me, the solution was to go into IIS, right-click on the new Web Site name, select Properties, ASP.Net, and change the ASP.Net version from "1.1.4322" (which it had set as the default) to 2.0.50727.
Once I'd done that, I could right-click on the .svc file, click on "Browse" and see the friendly Service webpage.
This can also become an issue after enabling IIS 6 Management Compatibility in windows 10. Setting the framework HTTP Activation under WCF Services will fix the problem.
In my case, the error was caused by incorrect mapping settings in the file applicationhost.config (\System32\inetsrv\config). For some reason, Visual Studio 2013 corrupted it while creating a virtual directory in IIS. The fix was to manually edit the sites section in the file.
There are 2 .net framework version are given under the features in add role/ features in server 2012
a. 3.5
b. 4.5
Depending up on used framework you can enable HTTP-Activation under WCF services. :)
In my case Win 10. the file applicationHost.config is corrupted by VS 2012. And you can get the copy the history of this file under C:\inetpub\history. Then restart IIS and it works properly.
I had to add the extension .svc to the allowed extensions in the request filtering settings (got 404.7 errors before).
Adding the .svc suffix as allowed in request filtering did the trick for me.
精彩评论