Pergunta

Eu tenho um serviço WCF que está retornando um Xelement, isso está funcionando bem, mas gostaria que ele inclua a declaração XML na resposta:

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

O lado do cliente não é algo que eu posso mudar e está relatando um "resultado não é XML". As únicas outras diferenças entre a resposta do meu resultado HTTP é o tipo de conteúdo do meu serviço WCF:

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

vs.

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

Presumo que "o resultado não seja XML" esteja sendo causado pela declaração XML ausente. Como é possível adicionar a declaração XML à resposta do Xelement? Eu pensei que um MessageFormatter poderia ser capaz de consertar isso, no entanto, não tenho idéia de por onde começar.

Foi útil?

Solução

Ver Visão geral da classe Xdocument Para uma amostra rápida de como adicionar a declaração XML à sua saída.

Embora eu tenha que concordar com @john, é improvável que a declaração XML ausente seja o problema, a menos que o cliente esteja validando manualmente o XML como texto (que seria uma coisa boba a se fazer, mas eu já vi isso) e está assumindo que qualquer um Texto ausente A declaração XML não deve ser válida XML.

Se o cliente for um cliente .NET, então Ativar log de mensagens WCF e verifique o que o cliente está recebendo. Se o cliente não for um cliente .NET, use o NetMon ou o Wireshark para inspecionar o tráfego para validar a carga útil.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top