6

我有一个由 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 对象。那么为什么它会导致这个异常,如何解决或避免这个异常呢?

4

2 回答 2

0

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

于 2011-10-20T07:02:52.640 回答
0

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

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

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

希望这对某人有帮助!

于 2013-05-29T13:15:50.773 回答