Я просто следовал этому учебнику и немного поиграл с кодом. Я почти уверен, что где-то читал, что для канала есть тайм-аут, поэтому он может автоматически закрыться. Поэтому я попытался просто открыть новый канал в моем клиенте для каждого метода, который я хотел вызвать, и в конце концов (после множества вызовов) я получил ошибки.
Похоже, есть ограничение на количество каналов, которые я могу открыть одновременно. Но так как канал является экземпляром пользовательского объекта, я не вижу, как я могу закрыть его или уничтожить или что мне нужно с ним сделать, чтобы избавиться от него, чтобы я мог создавать другие каналы.
Затем я заметил в CreateChannel
документации , что мой TChannel
должен реализовывать IChannel
(чего не делает учебник, на который я ссылался выше). Итак, вот так я бы закрыл свой канал? Если да, то как мне его закрыть или что мне делать с реализацией метода Close
? И что мне делать с реализацией любого другого метода, если мне нужно реализовать интерфейс?
Или я должен просто использовать один канал, пока он длится? В любом случае, как мне узнать, является ли он неисправным, открытым или закрытым, если все, что у меня есть, - это экземпляр моего класса?
Как видите, я довольно растерялся в этом вопросе, поэтому я надеюсь, что вы можете указать мне правильное направление.