我遇到了WCF测试客户端的问题。我无法连接到我的WebService,因为它一直遇到这个错误:
错误:无法从中获取元数据 http://xxx.xxxxxxxx.xxx/DPITerminal.svc如果这是Windows (R)请访问您的通信基金会服务 检查您是否已在指定的位置启用元数据发布 地址。有关启用元数据发布的帮助,请参阅 MSDN文档在 http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata交流 错误URI:http://xxx.xxxxxxxx.xxx/DPITerminal.svc
元数据包含无法解析的引用: 'http://xxx.xxxxxxxx.xxx/DPITerminal.svc'。内容类型 应用/肥皂+ xml的;服务不支持charset = utf-8 http://xxx.xxxxxxxx.xxx/DPITerminal.svc。客户和 服务绑定可能不匹配。远程服务器返回了 错误:(415)无法处理消息,因为内容类型 “应用程序/肥皂+ xml的; charset = utf-8'不是预期的类型 “文本/ XML; charset = utf-8'.. HTTP GET错误URI: http://xxx.xxxxxxxx.xxx/DPITerminal.svc发生错误 下载'http://xxx.xxxxxxxx.xxx/DPITerminal.svc'。
这是我的Web.Config:Link。
如您所见,我已经有了
<serviceMetadata httpGetEnabled="true" />
以及
<endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="mex" contract="IMetadataExchange" />
正如其他StackOverflow问题中所建议的那样。仍然无效。
我还注意到当我评论以下端点时:
<endpoint address="x" behaviorConfiguration="poxBehavior" binding="webHttpBinding" bindingConfiguration="web" contract="xxx.xxxxxxxx.xxxxxx.WebService.IDPITerminal" />
一切都按预期工作。所以我猜我的XML端点存在问题?这很奇怪,因为XML Endpoint正在共享JSON Endpoint的绑定配置,而JSON没有任何问题。
另外,让我澄清一下,我只是遇到了WCF测试客户端的问题。 JSON&amp; XML端点都正常工作。
编辑:
我尝试评论XML端点,发布,然后通过WCF测试客户端连接。然后我取消注释XML Endpoint,重新发布。 WCF测试客户端仍然有效 - 我的意思是我可以发送和接收数据。当我刷新服务时,再次弹出无法获取元数据错误。
答案 0 :(得分:4)
WCF似乎不允许对2个端点使用相同的配置。
有解决方法可以解决此问题:
bindingConfiguration
的{{1}}属性从address="x"
更改为web
web2
配置(复制Web配置):新绑定配置的代码:
webHttpBinding
<强>更新强>
WCF测试客户端无法获取<webHttpBinding>
<binding name="web" ... />
<binding name="web2" closeTimeout="00:10:00" openTimeout="00:10:00"
sendTimeout="00:10:00" allowCookies="true" maxBufferSize="2147483647"
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647">
<readerQuotas maxDepth="64" maxStringContentLength="2147483647"
maxArrayLength="8192" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</webHttpBinding>
的元数据,因为此类元数据不存在。 RESTfull服务不支持用于webHttpBinding
或basicHttpBinding
的WSDL或类似协议。当WCF测试客户端尝试在两种情况下(当WCF测试客户端发生故障时,如果没有)时,服务返回错误,但出于某些原因,在建议的解决方法的情况下,WCF测试客户端设法吞下错误。如果没有WCF测试客户端源代码,很难说为什么。
错误: