2010-07-18 84 views
50

我基于.NET框架3.5 SP1和Windows Server 2008(64位)主持开发一个应用程序在浏览WCF服务HTTP错误404.3 - 未找到”,而在Windows Server 2008(64位)

在浏览WCF。服务(.SVC)每一个局部的事情是确定的,但同时与全域网址浏览,它得到了一个错误

本地地址是这样的: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 \虚拟主机\ MySite.ir \的httpdocs \ MyService.svc

登录方法:匿名

登录用户匿名

回答

22

好的,这里是答案:

前往Handler映射 | 添加处理程序经理 - >然后添加以下信息

请求路径:* .SVC

类型:System.ServiceModel.Activation.HttpHandler,System.ServiceModel,版本= 3.0.0。0,文化=中性公钥= b77a5c561934e089

名称:SVC集成

+1

我有一个处理程序映射,但仍然得到同样的错误 – 2012-08-02 14:51:39

+2

任何人想要把它添加到他们的web.config文件,这对我的作品在.NET 4.5的项目:<添加名称=” svc-Integrated“path =”*。svc“verb =”*“type =”System.ServiceModel.Activation.HttpHandler,System.ServiceModel.Activation,Version = 4.0.0。0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35“/> – 2014-07-31 16:45:51

+4

对我来说,将@StefanMohr添加到Web.config中并不适用,但是我改变了'path =”* .svc“'和'verb = “*”'它运行得很好,因此,我使用过的那条线是:''(在配置/ system.webServer/handlers处添加) – 2015-04-21 21:42:18

0

如果您使用的.Net 4.x中,在公钥是31bf3856ad364e35。

但是,关于在IIS中正确安装WCF服务的this post,该处理程序是为我设置的。

7

如果任何人有Windows Server 2012中在这个问题上,比尔月球的答案here解决了这个问题对我来说:

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

+1

在任何现有的Web应用程序中,您还必须执行在添加Windows功能后,请执行以下操作: - 启动inetmgr - 打开“处理程序映射” - 检查扩展名* .svc的svc-ISAPI映射是否存在,如果不存在,请使用“还原为父级”母公司网站 请注意这假设自定义处理程序映射是在web.config中为应用程序配置的,正如IIS7 +中的情况通常一样。如果不是,执行“还原为父项”时将失去这些内容。 – 2014-07-30 06:58:09

139

请确保您已启动here的WCF组件。或者简单易用的方法是,转到控制面板 - >打开或关闭Windows功能 - >并确保您已按照下面的屏幕快照中所述勾选了所有选项。

enter image description here

+25

.Net Framework 4.5高级服务 - >检查WCF服务和 - > HTTP激活为我做了! – devHead 2014-12-05 19:18:04

+2

Windows Server 2012 - 只需要HTTP激活和端口共享检查。 – dibs487 2016-03-11 14:40:35

+1

这是我的解决方案。它在Windows Server 2012 r2 – 2016-06-08 12:17:41

0

我想添加为答案注释,但没有足够的代表吧。我尝试使用各种标志运行ServiceModelReg和aspnet_regiis.exe,并添加了HTTP激活功能,但仍无法使用。即使在IIS中使用Handler映射UI也无法正常工作,因为它找不到System.ServiceModel.Activation.HttpHandler。最后的工作是将处理程序Mori手动添加到我的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。

0

尝试从取消选中WCF HTTP激活 “打开的Windows功能打开或关闭” 窗口(See here)和去

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

重新安装和执行ServiceModelReg -i

0

我有Windows 10我的笔记本电脑,并使用Visual Studio 2015进行WCF开发。 WCF在Visual Studio中运行良好,但在IIS中托管时,我得到了同样的错误。

我检查了IIS处理程序。 svc扩展名缺失。所以我试着在森林中建议在IIS中添加新的处理程序。我没有找到类型“System.ServiceModel.Activation.HttpHandler”。

所以我打开了“打开或关闭窗口功能”,并安装了屏幕快照中突出显示的功能。

这对我有效。

enter image description here

相关问题