404 在现有的 .svc 文件上

404 On existing .svc file

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

此站点的 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

的服务

浏览器returns

但是文件在那里,我已经确保我在浏览器中输入的 URL 中没有拼写错误。

我看过类似的问题,但似乎没有任何问题与我遇到的问题相似。唯一看起来很有希望的问题是: WCF service file not visible 但是 post 的答案不适用于我的问题,因为我已经按照建议的 post 设置中提到的配置。

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

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

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

运行 在同一台服务器上的其他站点上进行更多测试后,我实际上意识到问题是特定于 .svc 文件的。因此,我在 Google 上进行了另一次搜索,发现服务器缺少 "HTTP Activation" 功能(WCF 服务的一部分)。

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

  • 打开服务器管理器
  • 在服务器管理器中,单击“管理”菜单,然后单击“添加角色” 和功能
  • 在“添加角色和功能”向导中,单击“下一步”。 Select 安装类型,然后单击下一步。 Select 目标服务器和 单击下一步。
  • 跳过服务器角色页面。
  • 在 Select 功能页面上,展开“.Net Framework 4.5 功能”, 展开 "WCF Services" 和 select "HTTP Activation"。点击下一步。
  • 在“确认安装”selections 页面上,单击“安装”。
  • 在“结果”页面上,单击“关闭”。

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

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

这对我有用。希望对大家有所帮助。