Да, вы можете включить Ping()
метод в каждый контракт на обслуживание и вызывать его до фактического вызова.
Но что это на самом деле говорит вам?
Прежде всего, даже вызов .Ping()
может привести к исключению (так как сервис пропал, перегружен и т. Д.).
И если это удастся - это абсолютно не дает вам гарантии того, что ваш следующий звонок в ту же службу через микросекунду будет иметь шанс на успех ...
По сути, я нахожу этот подход расточительным - вам нужно написать много кода, и в конце концов, он действительно не дает вам никакой значимой информации.
Что вам нужно сделать, так это: будьте готовы к каждому вызову службы, чтобы он мог потерпеть неудачу - по любой причине. Не тратьте впустую свое время и циклы обработки по всей вашей системе - в любом случае это не даст вам никакой значимой информации.
Просто позвоните в службу поддержки, будьте готовы обработать сбои (и, возможно, утилизировать прокси-серверы WCF) - и это все, что вы действительно можете сделать.