404在现有.svc文件上

时间:2016-12-09 10:33:07

标签: web-services wcf http iis http-status-code-404

我在Windows 2012 R2服务器上有一个IIS站点。该网站内有一个应用程序:

IIS folder structure for the site

此站点的URL在我们的Active Directive服务器上设置,因为它只能在我们公司内部访问。 URL遵循以下结构:

http://NAMEoftheSERVICE.myCompanyServices.myCompany.local

此网站的服务位于内部文件夹中:

http://NAMEoftheSERVICE.myCompanyServices.myCompany.local/InternalFolder/Service.svc

我在根级别和内部文件夹中放置了许多测试文件:

http://NAMEoftheSERVICE.myCompanyServices.myCompany.local/HelloWorld.html http://NAMEoftheSERVICE.myCompanyServices.myCompany.local/InternalFolder/HelloWorld.html

我可以毫无问题地浏览这些文件。但是,我无法在http://NAMEoftheSERVICE.myCompanyServices.myCompany.local/InternalFolder/Service.svc

浏览该服务

浏览器返回 Browser error screenshot

但是文件存在,我确保浏览器中的URL中没有拼写错误。

我看过类似的问题,但似乎没有像我遇到的问题那样。看起来很有希望的唯一问题是: WCF service file not visible 但是该帖子的答案并不适用于我的问题,因为我已经在建议的帖子设置中提到了配置。

我已经检查了IIS级别的配置文件,以了解有关.svc文件或类似内容的任何排除,但找不到任何内容。

你有什么建议可以解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

解决方案:安装HTTP激活功能

在同一台服务器上的其他网站上运行了一些测试之后,我实际上意识到问题是针对.svc文件的。因此,我在Google上进行了另一次搜索,发现该服务器缺少“HTTP激活”功能(WCF服务的一部分)。

因此,如果您在.svc文件上遇到同样的问题,请按照以下步骤操作,以确保在服务器上安装了正确的组件:

  • 打开服务器管理器
  • 在“服务器管理器”中,单击“管理”菜单,然后单击“添加角色” 和功能
  • 在“添加角色和功能”向导中,单击“下一步”。选择 安装类型,然后单击下一步选择目标服务器和 单击“下一步”。
  • 跳过“服务器角色”页面。
  • 在“选择功能”页面上,展开“.Net Framework 4.5功能”, 展开“WCF服务”并选择“HTTP激活”。点击下一步。 HTTP Activation module on the Server Manager
  • 在“确认安装选择”页面上,单击“安装”。
  • 在“结果”页面上,单击“关闭”。

通过运行以下Powershell命令可以实现同样的目的:

Install-WindowsFeature -Name NET-WCF-HTTP-Activation45

这对我有用。我希望它对某人有所帮助。