Более сложные типы данных в WCF, атрибут ассоциации, атрибут включения и т. Д. - PullRequest
0 голосов
/ 18 января 2011

Я нашел этот вопрос: Сложные типы данных в WCF? , которые имеют очень похожую проблему, за исключением того, что они основаны на проблемах с перечислением. Моя проблема немного сложнее. У меня есть сервис с методами, которые прекрасно работают, за исключением одного. Сбой одного метода (operationcontract) для метода, возвращающего сложный объект. Этот объект имеет свойство с полями [Включить] и [Ассоциация], которое, в свою очередь, имеет свои собственные поля [Включить] и [Ассоциация] (они на самом деле являются рекурсивными, указывая друг на друга, создавая потенциально бесконечный список.

Самая большая проблема заключается в том, что в моей среде разработки Win 7 x64, vs2010, iis, она работает как положено, но в моей производственной среде Server 2008 R2 она ломается, сообщая мне «Произошла ошибка при получении ответа HTTP " ошибка.

Я проверил средство просмотра трассировки служб в журнале сообщений, но все, что важно, - это отсутствие ответа на этот конкретный запрос. Все остальные запросы получают запись «ServiceLevelSendReply», тогда как этот конкретный метод - нет.

Есть идеи?

1 Ответ

1 голос
/ 19 января 2011

Поскольку у вас есть объекты, ссылающиеся на другие объекты возможным круговым способом, вы в основном пытаетесь отправить граф объектов, а не дерево объектов. В WCF добавлена ​​только поддержка отправки графов объектов в .NET 3.5 с пакетом обновления 1 (SP1), поэтому, если на вашем сервере установлена ​​.NET 3.5 без SP1 или ниже, произойдет сбой при попытке отправить граф объектов.

Чтобы точно выяснить, почему ваша служба не отвечает, вы можете включить трассировку WCF , которая создает очень подробный журнал того, что происходит внутри вашей службы.

...