首页 文章

WCF DataContract上的Readonly属性突然在一个客户端上提供异常

提问于
浏览
0

最近,我们的WCF服务出现了问题 . 这就是它的设置方式:

  • 该服务具有必要的ServiceContracts和DataContracts

  • 在DataContract中,有一个只读属性(参见下面的代码)

  • 客户端使用与Service-和DataContracts相同的DLL(因此没有WSDL)

这是readonly属性:

Dictionary<string, string> _list;

[DataMember]
public IDictionary<string, string> Fields
{
    get
    {
        if (_list == null)
            _list = new Dictionary<string, string>();
        return _list;
    }
}

客户端'sets'这个属性很容易使用 Fields.Add() 方法 .

最近我们得到了一个例外,即Fields应该有一个setter . 我在其他几个地方看过这个,但这很奇怪:

  • 有一天它在客户端工作得很好,而不是在另一天

  • 它在其他客户端工作正常,并且已经工作了大约1 - 2年

那为什么会突然改变呢?它可能是一个不同的.NET Framework(客户端可能在一夜之间更新)? WCF中是否真的不支持readonly属性,因为它似乎在其他客户端上运行良好?

1 回答

  • 0

    我再也没有得到任何关于此的消息了,我不再参与那个项目了,所以如果你遇到同样的问题,这里有一些解决这个问题的提示:

    • 代码在Partial Trust模式下运行

    • 安装了错误的.NET Framework版本(需要.NET 3.0 SP1)

    • 不要使用服务参考

    显然,就我而言,问题在于一个特定的客户 . 所以前两个选项是可能的 .

相关问题