浏览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