WCF ReliableMessaging - подключение к существующему OperationContext с использованием SessionId

В настоящее время я работаю над задачей интеграции WCF - WSIT. Я использую WS-ReliableMessaging с WCF и ws2007HttpBinding.

Надежный сеанс настроен правильно, я использую InstanceContextMode.PerSession, и мой экземпляр службы отключается после одной минуты бездействия.

Меня беспокоит только то, что я не уверен, как мне создать прокси WCF, инициализированный с существующим идентификатором OperationContext SessionId. Сгенерированный прокси-сервер Visual Studio, похоже, не принимает SessionId в качестве конструктора и т. Д.

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

2 ответа

Решение

Как я знаю, надежный сеанс в WCF живет только в том случае, если живы и клиент, и сервер. Надежный сеанс на канальном уровне реализован в виде WS-ReliableMassaging, который обеспечивает надежность на транспортном уровне - это означает, что он может обрабатывать потерянные сообщения, доставку заказов, повторную отправку сообщений и т. Д. = Надежность только для преодоления ненадежных транспортных протоколов, таких как HTTP.

Для сценариев, когда любой участник может "умереть" или выйти из сети, вы должны использовать обмен сообщениями (MSMQ в мире MS). При интеграции с миром Java вам, вероятно, понадобится другая платформа для обмена сообщениями, основанная на JMS.

Вы можете использовать длительный сервис

http://www.wcftutorial.net/How-to-Create-Durable-Service.aspx http://blogs.microsoft.co.il/blogs/egady/archive/2008/01/05/wcf-3-5 -durable-services.aspx

Другие вопросы по тегам