WCF IIS svcutil 错误

Posted

技术标签:

【中文标题】WCF IIS svcutil 错误【英文标题】:WCF IIS svcutil error 【发布时间】:2011-01-25 20:44:27 【问题描述】:

我有 wcf iis 托管服务。 我已经创建了标准(来自 vs 模板)wcf 服务及其客户端。在客户端,我将 ServiceReference 添加到我的 wcf 服务。一切都很好。没有错误,此服务器的 Web 表单也可以工作。下一步我将我的 wcf 服务发布到 Win2003 IIS6.0。 我成功去http://server:1234/Service1.svc,看web-form,可以查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"/> 服务元数据 httpGetEnabled="true"/>

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

【问题讨论】:

【参考方案1】:

编辑:

此答案已发布,并且对这个问题(不再)特别有用,因为它是基于原始问题中的错字。话虽如此,我仍然觉得这里的信息对于有类似问题的人很有用,他们可能会在搜索他们的答案时找到这个问题。如果有权删除答案的人认为需要删除 - 请随时删除。


原答案:

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

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


编辑:

顺便说一句,自从发布此消息以来,我收到了对我发布的类似问题的答案。我强烈建议您检查一下,因为它可以解决您的问题。摘要:它链接到一篇博客文章,该文章详细说明了如何解决我在最初的“建议”中提到的问题。如果它对您有帮助,请确保您投票支持 Chesso! (Chesso's answer to me,Blog post referenced in Chesso's answer)。

【讨论】:

感谢您的回答!但我很抱歉。这只是我对 aurit-server 的错误。我只有一台服务器 - “服务器”。 没问题...我将把答案留在这里,以防它帮助别人...对不起,它对自己没有帮助! ...而且不用担心会后悔 - 拼写错误/错误粘贴是不可避免的。【参考方案2】:

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

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

点击“局域网设置”按钮。

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

点击确定,应用/确定。

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

【讨论】:

以上是关于WCF IIS svcutil 错误的主要内容,如果未能解决你的问题,请参考以下文章

svcutil 不生成配置文件

WCF 服务的 IIS 发布 - 失败,没有错误消息

在 IIS 中托管 WCF 服务时协议映射错误

在 IIS 上托管 WCF 后出现“请求错误”

WCF 服务 wsdl 客户端错误

带有消息的零星 WCF 服务激活错误 - 访问 IIS 元数据库时发生错误