Вы, без сомнения, решили это - но для тех, кто сталкивался с этим (как я) ...
Согласно «Программированию служб WCF» Джувала Лоуи - нельзя использовать потоковую передачу с контрактом, для которого настроен SessionMode.Required. См. Стр. 243
Также вы не можете использовать NetTcpBinding с надежным обменом сообщениями с потоковой передачей.
Это не уточняет, почему.
Одним из обходных путей может быть разделение операций, для которых требуется режим сеанса, на отдельный контракт и потоковых операций на другой.
Затем реализуйте уникальный идентификатор для каждого клиента (уникальный GUID для времени жизни клиентского приложения), который передается в непотоковом интерфейсе как операция RegisterSession (Guid mySessionId).
Когда сеансы создаются на сервере - они могут зарегистрироваться в объекте диспетчера сеансов, который хранит GUID, пару SessionContractImplemenation в словаре.
Затем добавьте параметр в операцию контракта потоковой передачи (тот же GUID), чтобы реализация контракта потоковой передачи могла получить доступ к живому не потоковому объекту (через созданный вами менеджер сеанса - используя предоставленный GUID).
Конечно, вам придется соответствующим образом управлять временем жизни сессии.
От Microsoft ...
Сеансы и потоковая передача
Когда у вас есть большой объем данных для передачи, режим потоковой передачи в WCF является реальной альтернативой стандартному поведению буферизации и обработки сообщений в памяти во всей их полноте. Вы можете получить неожиданное поведение при потоковой передаче вызовов с привязкой на основе сеанса. Все потоковые вызовы выполняются по одному каналу (канал дейтаграмм), который не поддерживает сеансы, даже если используемая привязка настроена на использование сеансов. Если несколько клиентов выполняют потоковые вызовы к одному и тому же объекту службы через привязку на основе сеанса, а режим параллелизма объекта службы установлен на один, а его контекстный режим экземпляра установлен на PerSession, все вызовы должны проходить через канал дейтаграммы, и поэтому только один вызов обрабатывается за один раз. Время ожидания одного или нескольких клиентов может истечь. Вы можете обойти эту проблему, установив InstanceContextMode объекта службы в PerCall или в Concurrency в несколько.
Примечание:
MaxConcurrentSessions не имеют никакого эффекта в этом случае, потому что доступен только один «сеанс».
См. http://msdn.microsoft.com/en-us/library/ms733040.aspx