内容类型为text / html; charset =响应消息的UTF-8与绑定的内容类型不匹配(text / xml; charset = utf-8)
我创建了WCF服务并使用独立应用程序测试WCF客户端。 我能够使用Internet Explorer查看此服务,也可以在Visual Studio服务引用中查看。 这是错误消息。
"The content type text/html; charset=UTF-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8)."
你能告诉我什么可能是错的吗?
谢谢。
由于返回的内容类型是text/html
,我怀疑您的调用导致WCF之外的服务器端错误(您正在接收HTML错误页面)。
尝试使用Web调试代理(如Fiddler)查看响应。
(根据评论编辑):
根据您的评论,我看到您的WCF在经过表单身份validation的站点中的Sharepoint 2010下托管。
您收到的错误是由于您的WCF客户端未使用sharepoint进行身份validation – 它没有有效的身份validationcookie。 然后Sharepoint将HTTP重定向返回到html页面(login.aspx页面); 这是您的WCF客户端不期望的。
为了更进一步,您必须从Sharepoint获取身份validationcookie(请参阅身份validationWeb服务 )并将其传递给您的WCF客户端。
(更新编辑):
错误:该网站正在使用基于声明的身份validation。
虽然这不一定是由于cookie或表单身份validation,但提供的错误消息的解释保持不变。 身份validation问题导致重定向到HTML页面,而WCF客户端无法处理该页面。
这可能会有所帮助,请检查ISS 7中的URL重写规则。如果您没有正确配置规则,则会出现此问题。
听起来您的应用程序期望XML但是接收纯文本。 你传入的是什么类型的物体?
text / html是SOAP 1.1标头和Content-Type:application / soap + xml是SOAP 1.2validation绑定并返回标头。 应该是1.1或1.2相同
将以下代码添加到web.config服务器项目中
然后更新客户端Web服务,更新后,进行以下更改web.config
我希望有用