从WCF服务接收数据时出错

时间:2011-09-22 20:06:45

标签: c# wcf types

我有一个WCF有几个方法:GetAccount,UpdateAccount,DeleteAccont和ListAccount,前三个工作得很好,但ListAccount没有。 我收到一个错误:

Error

ListAccount返回帐户列表:

[DataContract]
public class Account
{
    private int id;
    private String name;
    private AccountType accountType;
    private Account upperAccount;
    private Dictionary<Business, double> porc;

    public Account()
    {
        porc = new Dictionary<Business, double>();
    }

    [DataMember]
    public int Id
    {
        get { return id; }
        set { id = value; }
    }

    [DataMember]
    public String Name
    {
        get { return name; }
        set { name = value; }
    }

    [DataMember]
    public AccountType AccountType
    {
        get { return accountType; }
        set { accountType = value; }
    }

    [DataMember]
    public Account UpperAccount
    {
        get { return upperAccount; }
        set { upperAccount = value; }
    }

    [DataMember]
    public Dictionary<Business, double> Porc
    {
        get { return porc; }
        set { porc = value; }
    }

    public override string ToString()
    {
        return name;
    }
}


[DataContract]
public enum AccountType : byte
{
    [EnumMember]
    [Description("Account Type One")]
    One = 0,

    [EnumMember]
    [Description("Account Type Two")]
    Two = 1,
}

[DataContract]
public enum Business : byte
{
    [EnumMember]
    [Description("Business One")]
    BusinessOne = 0,

    [EnumMember]
    [Description("Business Two")]
    BusinessTwo = 1,
}

一项观察,该清单包含45项。

任何帮助都会受到好评。感谢

2 个答案:

答案 0 :(得分:2)

您可能会在WCF中点击其中一个配额 - 确定的方法是在服务器上查找enable tracing,然后查看包含异常的跟踪,告知服务器断开客户端的原因。如果没有这些信息,我们可以做一些猜测:也许你正在达到MaxItemsInObjectGraph配额(可以使用<dataContractSerializer&gt;端点或服务行为增加;也许图表有一个周期,你需要启用{ {1}}处理它等等。但只有我们能够肯定知道的痕迹。

答案 1 :(得分:0)

您的ListAccount方法是否会抛出任何错误?而不是返回列表尝试使用列表的.ToArray方法并返回帐户[]。我假设你的GetAccount方法返回一个Account对象,这意味着它是可序列化的。