在浏览Windows Server 2008(64位)上的WCF服务时出现"HTTP错误404.3 - 未找到"。
在浏览Windows Server 2008(64位)上的WCF服务时出现"HTTP错误404.3 - 未找到"。
我正在开发一个基于.Net Framework 3.5 sp1的应用程序,并托管在Windows Server 2008(64位)上。
在本地浏览WCF服务(.svc)时一切正常,但在使用完整域名URL进行浏览时出现错误。
本地地址是:http://localhost/MyService.svc
域名地址是:http://MySite.ir/MyService.svc
顺便说一下,页面(.aspx)和其他文件在本地和域名地址上都正常工作。
任何想法将不胜感激。
以下是详细错误信息:
HTTP错误404.3 - 未找到
由于扩展配置的原因,无法提供您请求的页面。如果页面是一个脚本,请添加一个处理程序。如果文件应该被下载,请添加一个MIME映射。
详细错误信息:
模块:StaticFileModule
通知:ExecuteRequestHandler
处理程序:StaticFile
错误代码:0x80070032
请求的URL:http://MySite.ir:80/MyService.svc
物理路径:D:\inetpub\vhosts\MySite.ir\httpdocs\MyService.svc
登录方法:匿名
登录用户:匿名
在Windows Server 2008上浏览WCF服务时出现"HTTP Error 404.3 - Not Found"错误。
问题原因:缺少必要的Windows特性。
解决方法:
1. 打开服务器管理器(Server Manager)。
2. 点击"添加角色和功能"(Add roles and features)。
3. 选择适当的服务器。
4. 选择"特性"(Features)。
5. 在".NET Framework 4.5功能"(.NET Framework 4.5 Features)下找到"WCF服务"(WCF Services),在其下找到"HTTP激活"(HTTP Activation)。
6. 安装"HTTP激活"(HTTP Activation)特性。
在添加了Windows特性后,对于任何现有的Web应用程序,还需要进行以下操作:
1. 启动inetmgr。
2. 打开"处理程序映射"(Handler mappings)。
3. 检查是否存在扩展名为*.svc的svc-ISAPI映射。如果不存在,请使用"还原到父项"(Revert To Parent)操作从父网站复制它们。请注意,这假设在web.config中为应用程序配置了自定义处理程序映射,通常在IIS7+中是这样的。如果没有配置,则在执行"还原到父项"(Revert To Parent)操作时将丢失这些配置。
以上步骤完成后,重新启动IIS服务,问题应该得到解决。
HTTP错误404.3 - 未找到- 在Windows Server 2008(64位)上浏览wcf服务时出现
问题原因:在Windows Server 2008(64位)上浏览WCF服务时,可能会出现HTTP错误404.3 - 未找到的问题。这通常是由于缺少适当的处理程序映射所致。
解决方法:为了解决这个问题,需要进行以下操作:
1. 打开IIS管理器,进入"Handler Mappings"(处理程序映射)。
2. 点击"Add Handler Manager"(添加处理程序管理器)。
3. 在弹出的窗口中,添加以下信息:
- Request Path(请求路径): *.svc
- Type(类型): System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- Name(名称): svc-Integrated
如果你想将这些配置添加到你的web.config文件中,可以使用以下代码(适用于.NET 4.5项目):
在我的情况下,将这行代码添加到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位置)。
在浏览Windows Server 2008(64位)上的WCF服务时出现“HTTP Error 404.3 - Not Found”错误。出现这个问题的原因是没有激活WCF组件。解决方法是通过以下两种方式之一进行激活:
1. 在控制面板中打开“Turn Windows feature on or off”选项,并确保勾选了下面截图中提到的所有选项:
请确保每个选项都被激活并接受,如果一次激活所有功能时出现错误,可能需要逐个激活选项。
2. 在“Turn Windows feature on or off”选项中,勾选“.Net Framework 4.5 Advanced Services”的“WCF Services”和“HTTP Activation”选项。这对我来说解决了问题。
对于Windows Server 2012,只需勾选“HTTP activation”和“Port Sharing”即可。
需要注意的是,在激活功能时,逐个勾选选项,而不是一次勾选所有选项,因为在Windows Server 2012中同时勾选所有选项可能会失败。
这个答案应该放在最前面,因为这是正确的答案。对我来说,这解决了问题,而且我不需要手动添加任何内容到IIS Handler Mappings中。