【问题标题】:DateTimeOffsetAdapter interfering with WCF serialization of DateTimeOffset objectsDateTimeOffsetAdapter 干扰 DateTimeOffset 对象的 WCF 序列化
【发布时间】:2010-11-07 07:37:36
【问题描述】:

我有一个由 Visual Studio 2008 (.net 3.5 sp1) 生成的 WCF 服务引用(= 客户端代理)。生成的代码包含具有 DateTimeOffset 属性的数据协定,因此 VS 很自然地用 KnowTypeAttribute(System.DateTimeOffset) 对其进行了修饰。

每当我调用返回上述数据协定的 WCF 操作时,都会出现以下异常:

类型“System.DateTimeOffset”不能 添加到已知类型列表中 另一种类型 'System.Runtime.Serialization.DateTimeOffsetAdapter' 具有相同的数据合同名称 'http://schemas.datacontract.org/2004/07/System:DateTimeOffset' 已经存在

我了解 DateTimeOffsetAdapter 是 System.Runtime.Serialization 中的一个结构,用于序列化 DateTimeOffset 对象。那么为什么会导致这个异常,如何解决或避免呢?

【问题讨论】:

  • 太糟糕了,这个问题从来没有得到回答。
  • 有人知道答案吗?
  • @urig:你做了什么来解决这个问题?
  • @billybob 很可能我使用了与 DateTimeOffset 不同的类型 - 我记起来太久了。但是如果我找到了一个好的解决方案,我会在这里发布。对不起。

标签: .net wcf serialization datetimeoffset


【解决方案1】:

在我的情况下,问题似乎源于 将 IIS 作为一项功能添加到 Windows 7 之前安装了 .Net 4。

我和一位同事通过打开提升的(以管理员身份运行)命令提示符解决了这个问题。然后运行以下内容:

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319
aspnet_regiis.exe -i

希望这对某人有所帮助!

【讨论】:

  • 路径有错误:应该是C:\Windows\Microsoft.NET\Framework64\v4.0.30319
【解决方案2】:

我不知道为什么。但要解决此问题,请尝试将您的项目迁移到 .NET Framework 版本 4

【讨论】:

    猜你喜欢
    • 2011-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多