Закрыть и прервать в сервисном канале
Мой клиент использует одну службу WCF, которая выдает исключение (ИСКЛЮЧЕНИЕ: объект связи System.ServiceModel.Channels.ServiceChannel не может использоваться для связи, поскольку он находится в состоянии Faults). Все последующие вызовы выдают одно и то же исключение.
Я прочитал в Интернете, что клиент должен закрыть канал ()/Abort(), это решит проблему. это совершенно верно?
Также я пользуюсь сервисом обслуживания клиентов Channel Channel, предоставленным разработчиками сервиса. Когда я создаю канал, он не показывает методы закрытия и прерывания. Итак, как мне получить эти методы закрытия и прерывания, когда я создаю пользовательский экземпляр канала службы на стороне клиента?
1 ответ
Предполагая, что у вас есть прокси-экземпляр, который реализует интерфейс IClientChannel, вот способ (надеюсь, правильный) его использовать.
IClientChannel clientChannel = (IClientChannel)proxy;
bool success = false;
try
{
// do something with the proxy
clientChannel.Close();
success = true;
}
finally
{
if (!success)
{
clientChannel.Abort();
}
}
Вы также можете проверить это. Вы можете обернуть свои операции, используя общий класс или функцию.