Я уже писал что Microsoft - злобные тупые уроды? Нет?
Ну так вот - пишу.
Вот есть такая штука - WCF. Круто, да. Новое слово в построении распределенных систем, бла-бла-бла.
Клиент подключенный к WCF-сервису по протоколу TCP отваливается после 10 минут бездействия. В конфигурации сервиса в настройках ReliableSession находим параметр inactivityTimeout: "interval of time that a service remains inactive before closing" - ага, типа да вроде как это оно, по дефолту как раз десять минут. Ну ок, выставляем там Infinite - теперь должно работать, да?
Хрен. Тот же самый отвал канала через 10 минут. Что за дела?
Пляшем с бубном, материмся, гуглим, спрашиваем.
Через некоторое время, перепробовав всё на свете, обращаем внимание на другой параметр: ReceiveTimeout. Обращаем внимание потому, что для него дефолтовое значение - те же самые 10 минут. Правда описание этого параметра в MSDN английским по белому говорит о том, что к делу он отношения не имеет, он вообще для другого: " interval of time provided for a read operation to complete" - ну т.е. определяет максимальное время, за которое должно обрабатываться входящее WCF сообщение (ну, они же могут быть большие - вдруг мы гигабайтный стрим сервису передаем).
Ну это по документации. А на деле - поправил я этот параметрик... и всё заработало. Т.е. параметр вместо (или помимо - биллгейтс его знает) того, чтобы определять время входящей операции, определяет максимальный временной интервал между ними.
Ахренеть, дайте две! Ахренел, выпил две, пошел гуглить уже предметно. Выяснилось что таки да - есть у этого параметра такая недокмментированная фича, появилась уже перед самым релизом, доку не поправили. Впрочем, это ни разу не фича, это вполне себе бага - ибо этот параметр оверрайдит и вышеупомянутый inactivityTimeout и т.п.
Ну вообщем да. Ну бага. Ну бывает. Ну доку не поправили. Ну тоже бывает. У всех, между прочим, ваш покорный слуга не исключение. Но почему же тогда сразу злобные тупые уроды?
А вот почему:
"It is recognised within Microsoft as a bug, which is good: they know about the bug… but the bad news are that they don’t plan to fix it before WCF version 2.0 as they believe there’s a viable workaround."
Зачет реябта. Маладцы. Багу сделали, предлагают для её исправления разработчикам вырезать гланды автогеном через жопу... и при этом еще и фиксать не собираются - типа и так сойдёт. Вот поэтому-то и.
Да, пользуясь случаем. Саши Ложечкину - пламенный превед.