Является ли использование односторонних операций в сессионном контракте плохим проектом? - PullRequest
0 голосов
/ 03 февраля 2011

Я читал, что односторонние операции не должны использоваться в сессионном контракте при использовании экземпляра SessionMode.PerSession , но неплохо использовать односторонние операции с сессионным контрактом.когда SessionMode является либо на вызов, либо на синглтон.

Есть идеи, почему односторонние операции не следует использовать с сеансом, а их можно использовать с каждым вызовом и синглтоном?

Спасибо

1 Ответ

1 голос
/ 03 февраля 2011

Если вы используете одностороннюю операцию, вы не знаете, вызвало ли это исключение в службе. Необработанное исключение на сервисе всегда приводит к неисправности канала. Если для InstanceContextMode установлено значение PerSession, это приводит к сбою сеансового канала и удалению экземпляра службы. Из-за того, что клиент природы не будет знать об этом, следующий вызов службы с того же клиентского прокси завершится с исключением (канал неисправен ...). Клиент сможет только позвонить на прокси Abort, но не узнает об этом. Экземпляр IMO Single с включенным сеансом будет вести себя очень похоже, за исключением того, что он не будет располагать экземпляром службы.

Это не произойдет с PerCall экземплярами, потому что для каждого вызова используется стек каналов для обработки одного запроса. Как указано в комментарии, это будет происходить и при PerCall экземпляре из-за сбоя сеансового канала.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...