在Windows Server 2008(64位)上浏览wcf服务时出现"HTTP错误404.3 - 未找到"

Mor*_*ori 75 wcf

我正在开发一个基于.Net Framework 3.5 sp1的应用程序,并托管在Windows Server 2008(64位)上.

在本地浏览wcf服务(.svc)时,每件事都可以,但在使用完整域URL浏览时,它会出错.

本地地址是这样的:http://localhost/MyService.svc

和域名地址是这样的:http://MySite.ir/MyService.svc

顺便说一句,页面(.aspx)和其他文件在localhost和域地址上都能正常工作.

任何想法将不胜感激

这是详细的错误:


HTTP错误404.3 - 未找到

由于扩展配置,无法提供您请求的页面.如果页面是脚本,请添加处理程序.如果要下载文件,请添加MIME映射.详细的错误信息

模块: StaticFileModule

通知: ExecuteRequestHandler

处理程序:StaticFile

错误代码: 0x80070032

请求的URL:http://MySite.ir: 80/MyService.svc

物理路径: D:\ inetpub\vhosts\MySite.ir\httpdocs\MyService.svc

登录方法: 匿名

登录用户 匿名

Nir*_*hta 200

请确保您已从此处激活WCF组件.

或者替代和简单的方法是,转到控制面板 - >打开或关闭Windows功能 - >并确保您已经勾选了下面屏幕截图中提到的所有选项.

在此输入图像描述

如果在一次激活所有功能时出现错误,您可能需要激活每个框并接受

  • .Net Framework 4.5高级服务 - >检查WCF服务和 - > HTTP激活为我做了! (31认同)
  • Windows Server 2012 - 只需选中HTTP激活和端口共享. (3认同)
  • 这是正确的答案.这解决了我的问题,我没有手动向IIS处理程序映射手动添加任何东西. (3认同)
  • 我会在此响应中添加逐个激活框.同时进行的所有检查都可能失败.它发生在Windows Server 2012中. (2认同)
  • 这个答案应该在顶部 (2认同)

Mor*_*ori 25

好的,这是答案:

转到Handler Mappings | 添加处理程序管理器 - >然后添加以下信息

请求路径:*.svc

键入:System.ServiceModel.Activation.HttpHandler,System.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089

名称:svc-Integrated

  • 对我来说,将@StefanMohr中的行添加到Web.config并不是很有效.但是,我更改了`path ="*.svc"`和`verb ="*"`并且效果很好.因此,我使用的行是:`<add name ="svc-Integrated"path ="*.svc"verb ="*"type ="System.ServiceModel.Activation.HttpHandler,System.ServiceModel.Activation,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"/>`(在configuration/system.webServer/handlers中添加). (5认同)
  • 对于任何想要将其添加到他们的web.config文件的人来说,这适用于.NET 4.5项目:<add name ="svc-Integrated"path ="*.svc"verb ="*"type ="System. ServiceModel.Activation.HttpHandler,System.ServiceModel.Activation,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"/> (3认同)

Wil*_*ill 11

如果有人在Windows Server 2012上遇到此问题,Bill Moon的答案在这里为我解决了这个问题:

"对于Windows Server 2012 ...从服务器管理器中,单击添加角色和功能,选择相应的服务器,然后选择功能.在.NET Framework 4.5功能下,您将看到WCF服务,在此之下,您将找到HTTP激活."


Ani*_*nil 7

我的笔记本电脑中有windows 10,并使用visual studio 2015进行WCF开发.WCF在visual studio中正常运行,但是当在IIS中托管时,我得到了同样的错误.

我检查了IIS处理程序.svc扩展程序丢失了.所以我尝试在第一个答案中按照Mori的建议在IIS中添加新的处理程序.我找不到类型"System.ServiceModel.Activation.HttpHandler".

所以我打开了"打开或关闭Windows功能"并安装了屏幕截图中突出显示的功能.

这对我有用.

在此输入图像描述