WCF IIS svcutil错误

时间:2010-03-10 11:28:48

标签: wcf iis

我有wcf iis托管服务。 我已经创建了标准(来自vs模板)wcf服务及其客户端。在客户端,我将ServiceReference添加到我的wcf服务。一切都很好。没有错误,此服务器的Web表单也可以正常工作。下一步我将我的wcf服务发布到Win2003 IIS6.0。 我成功转到http://server:1234/Service1.svc,查看网络表单,可以查看wsdl。 但是当我运行:svcutil.exe http://server:1234/Service1.svc?wsdl或添加服务引用我有错误:

Error: Cannot obtain Metadata from http://server:1234/Service1.svc?wsdl

If this is a Windows (R) Communication Foundation service to which you have acce
ss, please check that you have enabled metadata publishing at the specified addr
ess.  For help enabling metadata publishing, please refer to the MSDN documentat
ion at http://go.microsoft.com/fwlink/?LinkId=65455.

WS-Metadata Exchange Error URI: http://server:1234/Service1.svc?wsdl
Metadata contains a reference that cannot be resolved:
'http://server:1234/Service1.svc?wsdl'.
The remote server returned an unexpected response: (417) Expectation failed.
The remote server returned an error: (417) Expectation failed.

在我的服务配置中,我有:

端点地址=“mex”binding =“mexHttpBinding”contract =“IMetadataExchange”/>

serviceMetadata httpGetEnabled =“true”/>

我无法理解问题。 你能帮助我吗。非常感谢

2 个答案:

答案 0 :(得分:0)

编辑:

这个答案已经发布,对这个问题(不再是)特别有用,因为它是基于原始问题中的拼写错误。话虽如此,我仍然觉得这些信息对于那些有类似问题的人来说很有用,他们可能会在寻找答案时找到这个问题。如果有权删除答案的人认为需要删除,请随时将其删除。


原始答案:

我不确定这是否有用 - 我遇到了类似的问题。请注意,当您在错误消息中访问http://server:1234/Service1.svc ...时,它会提到MEX端点为http://aurit-server:1234/Service1.svc ...然后,根据您的绑定设置方式,可能是aurit-server不是您的服务MEX的有效终点...但是server是反之亦然。

我知道这不是你的完整答案,我只是指出我在解决类似问题时忽略了一些东西 - 希望它有所帮助。即aurit-serverserver可能无法互换......在我的情况下,它们不可互换。


编辑:

自从发布此消息以来,我已经收到了我发布的类似问题的答案。我强烈建议你检查一下它修复你的问题。摘要:它链接到一篇博客文章,详细说明如何解决我在原始“建议”中提到的问题。如果它可以帮助你,请确保你投票Chesso! (Chesso's answer to meBlog post referenced in Chesso's answer)。

答案 1 :(得分:0)

我遇到了这个问题(“远程服务器返回了意外的响应:(417)期望失败”)尝试将服务引用添加到我部署在另一台服务器上的WCF服务时。在这种情况下,原来是互联网属性。

  • 转到控制台 - >互联网属性,“连接”选项卡。

  • 单击“局域网设置”按钮。

  • 取消选中“自动检测设置”和“使用自动配置脚本”。

  • 单击“确定”,然后单击“确定”。

之后,我可以添加服务参考就好了。如果你有这个问题值得一试。