我有一个WCF有几个方法:GetAccount,UpdateAccount,DeleteAccont和ListAccount,前三个工作得很好,但ListAccount没有。 我收到一个错误:
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项。
任何帮助都会受到好评。感谢
答案 0 :(得分:2)
您可能会在WCF中点击其中一个配额 - 确定的方法是在服务器上查找enable tracing,然后查看包含异常的跟踪,告知服务器断开客户端的原因。如果没有这些信息,我们可以做一些猜测:也许你正在达到MaxItemsInObjectGraph配额(可以使用<dataContractSerializer
&gt;端点或服务行为增加;也许图表有一个周期,你需要启用{ {1}}处理它等等。但只有我们能够肯定知道的痕迹。
答案 1 :(得分:0)
您的ListAccount方法是否会抛出任何错误?而不是返回列表尝试使用列表的.ToArray方法并返回帐户[]。我假设你的GetAccount方法返回一个Account对象,这意味着它是可序列化的。