Вместо использования оператора using
попробуйте запустить свой код без него.
С
using(var client = new WCFClient())
{
// ... code
}
до
var client = new WCFClient()
// ... code
После этого мы смогли увидеть, что исходный WCF не может использоваться для связи, поскольку он находится в состоянии Failed. Сообщение было вызвано самим вызовом using()
. Почему? Наш код, который использовал клиент WCF, передавал недействительные учетные данные, и сервер отвечал с ошибкой и изменял состояние прокси на сбойный. Блок using()
, , как мы знаем , вызывает Dispose()
объекта - в данном случае наш клиент WCF.
Поскольку клиент WCF завершился неудачно, а клиент WCF находился в состоянии сбоя, вызов Dispose()
вызвал ошибку WCF нельзя использовать для связи, поскольку он находится в состоянии Failed для выброса. 1026 *
Мы смогли увидеть это, обернув код, который использует клиент WCF, в блок try...catch
.