Я получаю это сообщение об ошибке при попытке вернуть данные из службы WCF. .Соединение сокета было прервано. Возможное исключение SerializationException?
«Подключение гнездо было прервано Это может быть вызвано ошибкой обработки ваше сообщение или получить тайм-аут превышены на удаленном хосте, или основной вопрос ресурсов сети Локальный тайм-аут сокета был '00:. 00: 59.9960000 '"
Это неверное определение, так как оно показывает ~ 59 секунд, но исключение составляет около 2 секунд. В последний раз, когда я получил это сообщение об ошибке, он имел отношение к бесконечному циклу, вызванному сериализацией объектов инфраструктуры сущности. К счастью, я только что внес изменения, так что было легко заметить.
На этот раз я не знаю, что изменилось, чтобы вызвать это. Я различал классы инфраструктуры сущности, чтобы узнать, что никаких изменений не было. Насколько я знаю, база данных также осталась прежней, хотя я не знаю, как это доказать, поскольку она довольно большая.
Если я пройду через код WCF с помощью отладчика, я вижу, что он правильно собирает данные. Он даже пытается вернуть информацию. Но, в стороне клиента прокси я получаю исключение на эту строку кода:
return Channel.GetDocuments(user, criterion);
ли кто-нибудь есть какие-либо понять или инструменты, которые могут помочь мне отследить это исключение?
Я также подозреваю, что это круговая ссылка. У вас есть умный способ найти, кто «DataMember» является виновником? Я просмотрел свойства, и ничего «очевидного» не выпрыгивает. –
Я ищу две вещи .... 1. Тип возврата, который имеет тот же тип, что и вызывающий. 2. Обычно это то, что есть ... свойство, которое является классом, который имеет свойства, и один из них имеет тот же тип, что и родительский где-то в графе объектов. Никакой трюк, о котором я не знаю, хотя и с моей головы. –