我有一个返回XElement的WCF服务,这工作正常但是我希望它在响应中包含XML声明:
<?xml version="1.0" encoding="utf-8"?>
客户端不是我可以更改的内容并且报告“结果不是XML”我的HTTP结果的响应之间的唯一其他差异是我的WCF服务的内容类型:
Content-Type: application/xml; charset=utf-8
VS
Content-Type: text/xml; charset=utf-8
我认为“结果不是XML”是由缺少的XML声明引起的。如何将XML声明添加到XElement响应中?我认为MessageFormatter可以解决这个问题,但我不知道从哪里开始。
答案 0 :(得分:0)
有关如何将xml声明添加到输出的快速示例,请参阅XDocument Class Overview。
虽然我不得不同意@John,但除非客户端手动将XML验证为文本(这将是一件愚蠢的事情,但我已经看到它完成了),否则不太可能缺少xml声明是问题所在。假设缺少xml声明的任何文本都不能是有效的xml。
如果客户端是.NET客户端,则enable WCF message logging并验证客户端正在接收的内容。如果客户端不是.NET客户端,则使用Netmon或Wireshark检查流量以验证有效负载。