nav100 nav100 - 2 months ago 59
C# Question

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)

I created WCF service and testing WCF client using stand alone application. I was able to view this service using Internet Explorer also able to view in Visual studio service references. Here is the error message.

"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)."


Could you please advice what could be wrong?

Thank you.

Answer

Since the returned content type is text/html, I suspect your call result in a server-side error outside of WCF (you are receiving an HTML error page).

Try viewing the response with a web debugging proxy such as Fiddler.


(Edit based on comments) :

Based on your comments, I see that your WCF is hosted under Sharepoint 2010, in a form-authenticated site.

The error you are receiving is due to the fact that your your WCF client is NOT authenticated with sharepoint -- it does not have a valid authentication cookie. Sharepoint then return an HTTP Redirect to an html page (the login.aspx page); which is not expected by your WCF client.

To go further you will have to obtain an authentication cookie from Sharepoint (see Authentication Web Service) and pass it to your WCF client.


(Updated edit) :

Mistake: The site is using claim based authentication.

Although this is not necessarily due to cookies or form authentication, the explaination of the provided error message remain the same. An authentication problem cause a redirection to an HTML page, which is not handled by the WCF client.