Как справиться с тайм-аутом дуплекса WCF? - PullRequest
0 голосов
/ 15 июля 2010

Последние два дня я искал в Интернете, но ни в коем случае не могу заставить свою службу дуплекса WCF работать. Я создал демонстрационный проект, который можно скачать с skydrive:

WCFDuplexDemo.zip

Чтобы свести к минимуму количество возможных причин ошибок, я решил просто вернуть короткую строку в обработчик обратного вызова, потому что тогда максимальный размер сообщения не будет превышен. Обычно моей службе WCF требуется некоторое время (+ 15 минут), чтобы рассчитать результат и затем вернуть его клиенту. Чтобы смоделировать это, я поместил исполняющий поток в slepp на 12 минут в DoWork ().

Исключение, которое я получаю, всегда упоминает о возможной проблеме с receiveTimeout, которую следует увеличить, чтобы предотвратить проблему. Однако receiveTimeout (и любой другой известный мне тайм-аут) установлен на три часа.

Еще одна вещь: я использую .NET Framework 3.5 SP1, и проблема также возникает при использовании WsDUalHttpBinding вместо netTcpBinding.

Ответы [ 2 ]

0 голосов
/ 04 января 2012

Посмотрите здесь Per-Session Services , а также ознакомьтесь с разделом «Завершение сеанса» на открытой странице.

Надеюсь, это поможет

0 голосов
/ 22 июля 2010

Harrr!Для тех, кто сталкивается с той же проблемой: я думаю, в реализации WCF .NET 3.5 есть ошибка.Я обновился до .NET 4 и проблема решена.

...