内容类型text/html; charset =响应消息的UTF-8与绑定的内容类型不匹配(text/xml; charset = utf-8)

nav*_*100 13 c# wcf web-services

我创建了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)."

你能不能指出可能出错的地方?

谢谢.

Sam*_*m B 17

由于返回的内容类型是text/html,我怀疑您的调用导致WCF之外的服务器端错误(您正在接收HTML错误页面).

尝试使用Fiddler等Web调试代理查看响应.


(根据评论编辑):

根据您的评论,我看到您的WCF在经过表单身份验证的站点中的Sharepoint 2010下托管.

您收到的错误是由于您的WCF客户端未使用sharepoint进行身份验证 - 它没有有效的身份验证cookie.然后Sharepoint将HTTP重定向返回到html页面(login.aspx页面); 这是您的WCF客户端不期望的.

为了更进一步,您必须从Sharepoint获取身份验证cookie(请参阅身份验证Web服务)并将其传递给您的WCF客户端.


(更新编辑):

错误:该网站正在使用基于声明的身份验证.

虽然这不一定是由于cookie或表单身份验证,但提供的错误消息的解释保持不变.身份验证问题导致重定向到HTML页面,而WCF客户端无法处理该页面.