Question

J'ai un service WCF qui retourne un XElement, cela fonctionne bien, je voudrais cependant à inclure la déclaration XML dans la réponse:

<?xml version="1.0" encoding="utf-8"?>

Le côté client n'est pas quelque chose que je peux changer et signale un « résultat n'est pas XML » Les seules autres différences entre la réponse de mon résultat HTTP est le type de contenu de mon service WCF:

Content-Type: application/xml; charset=utf-8

vs.

Content-Type: text/xml; charset=utf-8

Je suppose que le « résultat n'est pas XML » est causée par la déclaration XML manquante. Comment est-il possible d'ajouter la déclaration XML à la réponse XElement? Je pensais qu'un MessageFormatter pourrait être en mesure résoudre ce problème, mais je ne sais pas où commencer.

Était-ce utile?

La solution

Voir XDocument classe Aperçu pour un échantillon rapide de comment ajouter la déclaration xml à votre sortie.

Bien que je suis d'accord avec @John, il est peu probable la déclaration xml manquante est le problème sauf si le client le XML manuellement valider sous forme de texte (ce qui serait une chose stupide à faire, mais je l'ai vu faire) et est en supposant que tout texte manquant la déclaration xml ne doit pas être valide xml.

Si le client est un client .NET, puis activer la journalisation un message WCF et vérifier ce que le client reçoit. Si le client est pas un client .NET, puis utilisez Netmon ou Wireshark pour inspecter le trafic pour valider la charge utile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top