浏览Windows Server 2008(64位)上的wcf服务时出现“HTTP错误404.3 – 未find”

我正在开发基于.Net Framework 3.5 SP1的应用程序,并在Windows Server 2008(64位)上托pipe。

在本地浏览wcf服务(.svc)时,每个事情都可以,但是在使用完整的域名url浏览时,会出现错误。

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

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

顺便说一下,页面(.aspx)和其他文件在本地主机和域地址上都能正常工作。

任何想法将不胜感激

这里是详细的错误:


HTTP错误404.3 – 未find

您正在请求的页面由于扩展configuration而无法投放。 如果页面是脚本,添加一个处理程序。 如果文件应该被下载,添加一个MIME映射。 详细的错误信息

模块: StaticFileModule

通知: ExecuteRequestHandler

处理程序: StaticFile

错误代码: 0x80070032

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

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

login方法: 匿名

login用户匿名

请确保你从这里激活了WCF组件。

或者简单易用的方法是,转到控制面板 – >打开或closuresWindowsfunction – >并确保你有所有的选项打勾,如下面的截图所述。

在这里输入图像描述

好的,这里是答案:

转到Handler映射 | 添加处理程序pipe理器 – >然后添加下面的信息

请求path: * .svc

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

名称: svc-集成

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

“对于Windows Server 2012 …从服务器pipe理器中,单击添加angular色和function,select适当的服务器,然后selectfunction。在.NET Framework 4.5function,您将看到WCF服务,然后findHTTP激活“。

如果您使用.Net 4 x,PublicKeyToken是31bf3856ad364e35。

但是,在这篇关于在IIS中正确安装WCF服务的文章之后 ,这个处理程序是为我设置的。

我想添加这个作为评论的答案,但没有足够的代表。 我尝试运行ServiceModelReg和aspnet_regiis.exe各种标志,并添加HTTP激活function,但它仍然无法正常工作。 即使在IIS中使用Handler映射UI也无法正常工作,因为找不到System.ServiceModel.Activation.HttpHandler。 最后工作是添加处理器森手动提到我的web.config文件。

 <system.webServer> <handlers> <add name="svc-Integrated" path="*.svc" verb="GET,HEAD,POST,DEBUG" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" modules="ManagedPipelineHandler" scriptProcessor="" resourceType="Unspecified" requireAccess="Script" allowPathInfo="false" preCondition="integratedMode" responseBufferLimit="4194304" /> 

我的项目在Windows 7上运行.Net 3.5和IIS 7.5,在Win Server 2008 R2上运行IIS 7.0。

尝试从“打开或closuresWindowsfunction”窗口( 请参阅此处 )取消选中WCF HTTP激活,然后重新安装

 %windir%\Microsoft.Net\Framework\v3.0\Windows Communication Foundation\ 

并执行ServiceModelReg -i