简体   繁体   中英

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 IIS, 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:

WCF HTTP 404

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:

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 XX 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:\n* HTTP Activation \n* Non-HTTP Activation \nBoth 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.

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.

在 Windows 10 中启用 IIS 6 管理兼容性后,这也可能成为问题。在 WCF 服务下设置框架 HTTP 激活将解决该问题。

验证您的目录是否已转换为应用程序是您的 IIS。

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!

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).

在此处输入图片说明

添加请求过滤中允许的 .svc 后缀对我来说很有效。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM