Первоначально:соединение гнездо было прервано - CommunicationException
- Я подумал, что это циклическая проблема ........ оказывается, что это не так.
- Проблема возникла из-за отсутствия конфигурации конфигурации службы вообще.
- Поскольку значения по умолчанию очень низкие, отправка большого количества данных приведет к сбою службы.
Сценарий:
- Кажется, я, возможно, циклические ссылки в моей службы WCF, но с использованием "[DataContract (IsReference = истина)]", не делает ничего, чтобы помочь исправить это.
- Я получаю сообщение об ошибке «Соединение сокета было прервано. Это может быть вызвано ошибкой обработки вашего сообщения или превышением времени приема удаленным хостом или неполадкой в сетевом ресурсе. Локальный тайм-аут гнезда был« 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 (это CUSTOM OBJECT), и это свойство содержит список 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;
}
}
Как вы получаете от «Ошибка сокета» до круговой ссылки? У вас есть сообщение об ошибке, которое вы могли бы добавить в сообщение? –
Потому что, когда я googled сообщение об ошибке, я получил много результатов, говоря о круговых ссылках. Кроме того, ошибка возникает только при попытке отправки ALOT данных, в противном случае она работает нормально. – Goober