Объект WCF, созданный временем жизни ChannelFactory - PullRequest
0 голосов
/ 13 декабря 2011

Я следую этому учебнику по WCF, и все работает отлично. Похоже, с этим простым кодом я должен иметь возможность вызывать любые методы от моих клиентов к серверу. Меня интересуют только каналы, вообще нет сетей.

Я помню, как читал где-то, что эти объекты возвращаются с сервера, например pipeProxy в этом коде:

IStringReverser pipeProxy = pipeFactory.CreateChannel();

будет длиться всего 5 минут и затем будет утилизирован или доработан или что-то в этом роде. Это правда? Придется ли мне вызывать мой ChannelFactory CreateChannel каждый раз, когда я хочу вызвать один из методов моего сервера? Кроме того, могу ли я сохранить свой экземпляр ChannelFactory или через некоторое время он также совершит самоубийство?

Я не могу найти много информации об этих деталях, и то, что я нахожу, это огромные продвинутые учебные пособия, которые в основном рассказывают о вещах, которые меня не интересуют, например, http и о работе в сети. Все, что я хочу, - это иметь базовую связь между двумя приложениями на одном компьютере. Все, что мне нужно, - это возможность вызывать метод из приложения A в приложение B.

Так есть ли какие-либо ошибки, которых я должен бояться, или достаточно ли кода, размещенного в связанном руководстве? Могу ли я просто взять код из учебника и просто продолжать добавлять методы в пример класса, и все будет хорошо? Или есть что-то еще, что мне нужно знать?

1 Ответ

1 голос
/ 13 декабря 2011

Вы можете оставить свой ChannelFactory, на самом деле вы должны его создать, поскольку его создание обходится дорого.

С другой стороны, создание новых каналов не является дорогой операцией, и вы можете просто создавать новые каждый раз, когда вам нужно сделать (или повторить) вызов.

Я не нашелСсылка на 5 минут, так что я предполагаю, что учебник имел в виду, что если вы оставляете соединение открытым более 5 минут, оно истекает.Если вы хотите, чтобы между этими двумя приложениями всегда было открыто соединение, я предлагаю рассмотреть DuplexChannels вместо

...