嗨,我使用 Zeroc Ice 通信库(v3.4.2)编写了一个 C# 客户端/服务器应用程序。
我正在从服务器传输一系列对象,然后以表格格式在客户端显示它们。很简单。
我定义了以下切片类型
enum DrawType { All, Instant, Raffle };
struct TicketSoldSummary {
int scheduleId;
DrawType dType;
string drawName;
long startDate;
long endDate;
string winningNumbers;
int numTicket;
string status;
};
sequence<TicketSoldSummary> TicketSoldSummaryList;
interface IReportManager {
[..]
TicketSoldSummaryList getTicketSoldSummary(long startTime, long endTime);
};
当我调用此方法时,它通常可以正常工作,但偶尔(大约 25% 的时间)调用者会收到 Ice::MemoryLimitException。我们通常一次运行 2-3 个客户端。
我在互联网上搜索了答案,并被告知要增加 Ice.MessageSizeMax,我这样做了。我已将 MessageSizeMax 增加到 2,000,000 Kb,但这并没有什么区别,我只是用 31,000 条记录(大约 1.8 Megs 的数据)进行了测试,仍然得到 Ice.MemoryLimitException。1.8兆不是很大!
我做错了什么还是 Zeroc Ice 有错误?
非常感谢任何可以提供帮助的人。