DateTimeOffsetAdapter干扰DateTimeOffset对象的WCF序列化

时间:2009-07-01 12:18:20

标签: .net wcf serialization datetimeoffset

我有一个由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对象时使用。那么为什么会引起这种异常呢?如何解决或避免这种情况呢?

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

我和一位同事通过打开一个提升的(Run As Administrator)命令提示符来修复此问题。然后运行以下内容:

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

希望这有助于某人!