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