Le type de contenu text/html; charset=UTF-8 du message de la réponse ne correspond pas au type de contenu de la liaison (text/xml; charset=utf-8)
J'ai créé WCF service et test WCF client à l'aide d'application autonome. J'ai été en mesure de voir ce service à l'aide d'Internet Explorer également en mesure d'afficher dans Visual studio service de références. Voici le message d'erreur.
"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)."
Pourriez-vous s'il vous plaît conseils ce qui pourrait être mauvais?
Merci.
OriginalL'auteur nav100 | 2011-03-10
Vous devez vous connecter pour publier un commentaire.
Depuis le retour de ce type de contenu est
text/html
, je soupçonne votre résultat de l'appel dans un serveur-erreur du côté extérieur de la WCF (vous recevez un message d'erreur HTML de la page).Essayez d'afficher la réponse avec un web debugging proxy comme Fiddler.
(À modifier selon les commentaires) :
En fonction de vos commentaires, je vois que votre WCF est hébergé sous Sharepoint 2010, dans un formulaire de site authentifié.
L'erreur que vous recevez est dû au fait que votre votre WCF client n'est PAS authentifié avec sharepoint -- il n'a pas un cookie d'authentification valide. Sharepoint puis retour une Redirection HTTP vers une page html (la connexion.page aspx); ce qui n'est pas prévu par votre WCF client.
Pour aller plus loin, vous devez obtenir un cookie d'authentification à partir de Sharepoint (voir Service Web D'Authentification) et de le passer à votre WCF client.
(Mise à jour edit) :
Erreur: Le site est à l'aide de réclamation fondée d'authentification.
Bien que ce n'est pas nécessairement en raison de cookies ou d'un formulaire d'authentification, l'explication de la condition message d'erreur reste le même. Un problème d'authentification de provoquer une redirection vers une page HTML, ce qui n'est pas géré par la WCF client.
Voici quelques données en-Têtes de Fiddler. GET /_vti_bin/psi/helloservice.svc HTTP/1.1 Content-Type: text/xml; charset=utf-8 MicrosoftSharePointTeamServices: 14.0.0.4762 Server: Microsoft-IIS/7.5 X-AspNet-Version: 2.0.50727 X-SharePointHealthScore: 4
Essayez de lancer votre application et de reproduire l'erreur énoncée avec un violon en cours d'exécution. Vous pouvez avoir à modifier votre WCF client des points de terminaison et de configuration pour les à se connecter via la Fiddler.
Comment puis-je me connecter par le biais de Fiddler? Je suis entré dans serveur/pwa/_vti_bin/psi/helloservice.svc Fiddler RequestHeader. J'ai eu la même information.
si vous avez vu l'appel dans un violon, alors vous êtes OK. L'en-tête que vous avez collé signalé un
Content-Type
detext/xml
; qui est ce que nous attendons. Avez-vous reçu l'exception que vous avez déclaré dans votre question au cours de ces appels? Si non, pouvez-vous gérer pour le reproduire? Remarque ils peuvent être plusieurs lignes pour un WCF appel dans un violon. Rechercheztext/html
retourné type de contenu et d'inspecter le contenu pour plus d'indices.OriginalL'auteur
Cela peut être utile, vérifiez les règles de réécriture d'url dans l'ISS 7. Ce problème se produit si vous ne vous êtes pas configurer la règle correctement.
OriginalL'auteur
Il semble que votre application s'attend XML, mais la réception est en texte brut. Quel type d'objet vous êtes de passage dans?
OriginalL'auteur
texte/html est SOAP 1.1-tête et le Contenu-Type: application/soap+xml est SOAP 1.2
Vérifiez vos fixations et le retour de l'en-tête.
Elle doit être la même, soit 1,1 ou 1,2
OriginalL'auteur
Ajoutez le code suivant pour le web.config projet de serveur
puis mise à jour du client de service web,Après la mise à jour, les modifications suivantes sont apportées web.config
J'espère être utile
OriginalL'auteur