2014-03-05 97 views
8

我刚刚在VS2013中使用framework 3.5创建了WCF服务应用程序。用于公开我在类库项目中使用的一些方法。IIS Express错误http 404.17 - 未找到运行WCF服务

一切都很顺利,但当我试图看看服务是否运行,它不。相反,我得到了下一个错误。

HTTP Error 404.17 - Not Found The requested content appears to be script and will not be served by the static file handler.

Most likely causes: The request matched a wildcard mime map. The request is mapped to the static file handler. If there were different pre-conditions, the request will map to a different handler.

Things you can try: If you want to serve this content as a static file, add an explicit MIME map.

我已经在IIS上处理过它,但现在在IIS表达式中我有点不知所措。

我没有IIS安装在这台机器上,因为我使用的是远程的,但我需要调试一些东西,并且卡住了。谢谢你的帮助。

我也用可视命令提示符运行了servicesmodelreg -i,但错误仍然存​​在。

UPDATE

这可能是有用的,以clarfy所以它是影响发展它只发生在IIS表达。我将VS2013更新为运行Win 8.1 64bit的最新补丁

回答

19

尝试运行“C:\ Program Files \ IIS Express> Wscript.exe WCF35Setup.js install”,这是用于在IIS Express上启用WCF 3.5服务的脚本。 参考:http://www.iis.net/learn/extensions/introduction-to-iis-express/iis-75-express-readme

+0

怎么样?我只是这样做,但错误仍然存​​在。我也发现了这一点,但也没有工作。我刚刚更新了一下条目 –

+0

这个http://gasparnagy.com/2014/01/enable-net-4-0-wcf-hosing-in-iis-8/#comment-144 –

+0

当你运行命令时你指出,似乎没有发生任何事情,也没有好也不坏。而这个错误依然存在。任何澄清将很高兴 –

5

似乎WCF映射未注册IIS。

为了解决上述错误:

  • 导航至 “

    %SYSTEMROOT%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation

” 在Visual Studio命令提示。

  • 执行“servicemodelreg -i”手动安装映射。

有关更多信息,请参阅:ServiceModel Registration Tool (ServiceModelReg.exe) on MSDN

-

或者

使HTTP Activation在Windows功能的WCF服务。

  1. 单击开始按钮,然后单击控制面板。
  2. 单击程序,然后单击程序和功能。
  3. 在“任务”菜单上,单击“打开或关闭Windows功能”。
  4. 选择WCF非Http激活组件对话框并保存 设置。

enter image description here

来源:

http://msdn.microsoft.com/en-us/library/ms732012(v=vs.110).aspx

+0

我已经这样做了,我想如果我将它部署到我的IIS,它应该工作...我会试试看看IIS和IISExpress是如何链接的。这个问题只在调试时出现。该组件已经部署在客户服务器上并且工作平稳​​ –

+0

可能是WCF映射未在您的计算机上注册到IIS,但是因为它在托管的客户服务器上很好,所以它工作正常... –

+0

这也导致我无法添加开发时的服务参考。我在这里发布该问题http://stackoverflow.com/questions/24559558/vs2013-cannot-add-wcf-service-reference-in-solution –

1

尝试所有建议的解决方法后,这里建议了这一点:

  • servicemodelreg -i
  • WSCRIPT.EXE WCF35Setup.js inst所有
  • 启用HTTP激活

和其他几个人在别处建议:

  • 运行Visual Studio作为管理员
  • 使用 “本地IIS”,而不是IIS快递

我最终确定了我的问题。 WCF代码的目标是.NET框架3.0,并且我没有为3.0/3.5启用IIS支持! 解决方案很简单。启用“.NET Extensibilty 3.5和ASP.NET 3.5”。

Enable Features