Я хочу, чтобы добавить поведение повторов на стороне сервера, если что-то конкретное происходит во время работы.Как реализовать WCF на стороне сервера повторит
Пользовательские IOperationInvoker выглядит хорошим кандидатом для этой функции, но ...
К сожалению экземпляр, на котором операция должна быть выполнена уже создан/решена, поэтому, чтобы правильно реализовать логику повторных попыток, каждый должен написать реализацию лиц без обслуживания, которые довольно лимитирует, иногда приятно иметь режим InstanceContextMode.PerCall и состояние, которое живет только во время жизни запроса.
Есть ли место или возможность заставить WCF заново создать/услугу решительности и вызвать операцию еще раз?
Не могли бы вы более подробно описать, почему вам нужно логику повторных попыток, и почему вы решили реализовать его на стороне сервера? –
Я не вижу логики «К сожалению, экземпляр, в котором должна выполняться операция, уже создан/разрешен, поэтому для правильной реализации логики повторения каждый должен писать службу без состояния».Почему вы не можете повторить попытку с использованием одного экземпляра службы? Не удалось ли его внутреннее состояние мутировать? Если да, то как? Необходимо более подробный пример. – ErnieL
@ ErnieL, о котором я упоминал в своем вопросе, требуя, чтобы реализация была безгражданна или, что еще труднее, безопасна для исключительных ситуаций, весьма ограничена. В моем случае реализация сервиса разрешена из контейнера IoC с зависимостями, использующими ORM, состояние которых повреждено после исключения и не может быть повторно использовано. –