Почему вы хотите, чтобы ваша служба выдавала исключение, когда нет клиента?
WCF - это, по сути, система обмена сообщениями, как и наша почтовая система. Если вы, как клиент, пришлите мне письмо, я (служба) ответит на ваш адрес. Я просто предполагаю, что вы все еще живете там, и что вы будете еще живы, чтобы прочитать мой ответ.
Даже если я вижу на вечерних новостях, что вы попали под грузовик (будем надеяться, что нет ;-)), пока я пишу свой ответ. Зачем мне кричать «эй, я не могу отправить свой ответ этому парню!»? Мне некому было бы слушать. И вам все равно ...
Надежные сеансы просто добавляют дополнительный шаг подтверждения между ними. Вы пришлите мне письмо, я отвечаю: «Я получил ваше письмо, я отвечу ему позже». Если вы не получите ответ, вы просто отправте свое оригинальное письмо, и я заметлю, что вы отправите мне то же письмо. Поэтому я снова отвечу. Такая же история для ответа. Если я не получу сообщение «Я получил ваш ответ», я постараюсь ответить снова, и снова, и снова. Пока я, наконец, не сдаюсь ... потому, что я смотрел вечерние новости, или мне надоело писать то же письмо. Но конечный результат тот же. Мне еще никто не кричать, потому что вы больше меня не слушаете ...
История отличается в дуплексных привязках. Затем связь завершается, когда сервер получает сообщение. И тогда роли становятся обратными (сервер становится клиентом, а клиент становится сервером). Сервер (теперь клиент) отправляет новое сообщение по обратному каналу клиенту (теперь серверу). И поскольку этот вызов вызван вызовом метода, этот вызов метода завершится сбоем с исключением на стороне сервера.