【问题标题】:WCF Deserialization ErrorWCF 反序列化错误
【发布时间】:2010-04-12 22:37:09
【问题描述】:

错误 - 异常:System.ServiceModel.Dispatcher.NetDispatcherFaultException 消息:格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数 services.gmrlive.com/JupiterMobile/2009/01/01/:StatusDetails 时出错。 InnerException 消息是“反序列化 X.X.X.Entities.StatusDetailCollection 类型的对象时出错。名称不能以“5”字符开头,十六进制值 0x35。第 12 行,位置 45。'。

我正在跟踪 wcf 日志,但我无法看到实际的 xml 消息。它无法记录格式错误的消息。

谁能帮忙?

【问题讨论】:

  • 看起来您的对象名称的名称开头有一个“5”字符,正如错误消息所建议的那样?您可以使用属性覆盖名称:[DataContract(Name="ZZZ")]
  • 此服务适用于其他消息。我可以看到消息并且工作正常。该特定消息本身似乎有问题。 StatusDetail 对象有一个名为 Name 的属性,它是一个字符串。同样,开头的“5”不应该打扰字符串字段。 StatusDetailCollection 是集合对象;公共类 StatusDetailCollection : KeyedCollection

标签: xml wcf serialization


【解决方案1】:

我认为跟踪不会记录您的消息。无论如何,如果您想检查消息,您可以使用 fiddler 并检查通过线路发送到 WCF 服务的请求。还要确保消息具有适当的命名空间,以便反序列化消息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2011-09-09
    • 2014-03-03
    • 1970-01-01
    • 2020-03-16
    • 2012-03-10
    • 2015-03-29
    相关资源
    最近更新 更多