1

我有一个返回 XElement 的 WCF 服务,这工作正常,但是我希望它在响应中包含 XML 声明:

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

客户端不是我可以更改的,并且正在报告“结果不是 XML”我的 HTTP 结果的响应之间唯一的其他区别是我的 WCF 服务的内容类型:

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

对比

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

我假设“结果不是 XML”是由缺少 XML 声明引起的。如何将 XML 声明添加到 XElement 响应中?我认为 MessageFormatter 可能能够解决这个问题,但是我不知道从哪里开始。

4

1 回答 1

0

有关如何将 xml 声明添加到输出的快速示例,请参阅XDocument 类概述。

虽然我必须同意@John,但它不太可能是缺少 xml 声明,除非客户端手动将 XML 验证为文本(这将是一件愚蠢的事情,但我已经看到它完成了)并假设任何缺少 xml 声明的文本不能是有效的 xml。

如果客户端是 .NET 客户端,则启用 WCF 消息日志记录并验证客户端接收的内容。如果客户端不是 .NET 客户端,则使用 Netmon 或 Wireshark 检查流量以验证有效负载。

于 2009-08-17T12:50:24.980 回答