【发布时间】:2011-03-27 09:23:32
【问题描述】:
原文:
- 我还以为是循环引用问题…………原来不是。
- 问题源于根本没有配置服务配置。
- 由于默认值非常低,发送大量数据会使服务崩溃。
场景:
- 看来我的 WCF 服务中可能有循环引用,但使用“[DataContract(IsReference=true)]”对修复它没有任何帮助。
- 我收到错误消息“套接字连接已中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或底层网络资源问题造成的。本地套接字超时为 '00:01 :00'。”
- 我错过了什么吗?
代码:
[DataContract(IsReference=true)]
public class Message
{
[DataMember]
public string TopicName { get; set; }
[DataMember]
public string EventData { get; set; }
[DataMember]
public SerializableDictionary<string, FuturesLineAsset> FuturesLineDictionary { get; set ; }
}
想法:
- 我想知道是不是因为我有一个 FuturesAsset 类,它有一个 BindableDictionary 类型的属性(这是一个自定义对象),并且该属性包含一个 FuturesLinesAssets 列表。
- 见下文:
家长:
public class FuturesAsset
{
public string AssetName { get; set; }
public BindableDictionary<string, FuturesLineAsset> AssetLines { get; private set; }
public FuturesAsset()
{
AssetLines = new BindableDictionary<string, FuturesLineAsset>();
}
public FuturesAsset(string assetName)
{
AssetLines = new BindableDictionary<string, FuturesLineAsset>();
AssetName = assetName;
}
}
孩子:
public class FuturesLineAsset
{
public string ReferenceAsset { get; set; }
public string MID { get; set; }
public double LivePrice { get; set; }
public DateTime UpdateTime { get; set; }
public DateTime LastContributedTime { get; set; }
public double Spread { get; set; }
public double Correlation { get; set; }
public DateTime Maturity { get; set; }
public double ReferenceCurve { get; set; }
public FuturesLineAsset(string mID, string referenceAsset, double livePrice)
{
MID = mID;
ReferenceAsset = referenceAsset;
ReutersLivePrice = livePrice;
}
}
【问题讨论】:
-
如何从“套接字错误”到循环引用?您有任何可以添加到帖子中的错误消息吗?
-
因为当我搜索错误消息时,我得到了很多关于循环引用的结果。此外,该错误仅在我尝试发送大量数据时发生,否则它可以正常工作。
-
在我的情况下,这个错误是由应用程序池回收引起的。
标签: c# .net wcf exception-handling