Использование WCF, .NET 4.5, Visual Studio 2015, и вы хотите использовать для каждого сеанса, а не singleton. Предоставляемые услуги должны быть полнодуплексными, через tcp.net.WCF - как подключиться к конкретному экземпляру
Предположим, у меня есть две машины, A & B ...
В качестве клиента, подключается к «сервис» при условии, в качестве службы WCF на той же машине B, и начинает говорить с ним, назовем его объект "ИКС". Он также подключается к другому экземпляру одной и той же службы, называет его объектом «Y»
В качестве клиента, который хочет подключиться к тем же объектам, с которыми разговаривает B, и использовать их, объекты «X» и «Y», , за исключением того, что теперь это удаленный-удаленный, а не локальный-удаленный.
«X» и «Y» на самом деле являются видеосерверами, и у обоих есть «состояние».
Могу ли я это сделать? Как, когда я являюсь клиентом, я указываю, какой экземпляр WHICH я хочу подключиться?
Очевидно, что на машине «B» я мог бы уклониться от этого, предоставляя услуги просто передними концами без «состояния», которые обмениваются данными с некоторыми процессами, запущенными на «B», но для этого мне потребуется написать пучок кода interprocess, который я ненавижу.
Ожидается, что в машине B будет запущено 100 экземпляров этих «видеосерверов», в каждом из которых разговаривают с помощью локальной мастер-станции (singleton), и с ними разговаривают машины конечного пользователя.
Я понимаю, что этот вопрос немного обобщен, но он также затрагивает вопрос, который я не мог найти, или ответил на Интернет.
Я просто подумал о одном возможном, но решении kludge-y: поскольку главная служба является одноэлементной, когда экземпляр службы «X» создается конечным пользователем, он может подключиться к основной службе singleton, используя прокси для синглтона. Затем синглтон может говорить назад к экземпляру «X» по каналу обратного вызова. Да, это сработает! беспорядочно, но возможно.
Я все еще хотел бы знать, может ли конечный пользователь A и конечный пользователь B разговаривать с одним и тем же (не одиночным) экземпляром службы на компьютере C через некоторые манипуляции с манипуляциями с каналами или что-то в этом роде. Насколько я понимаю правила WCF, это просто невозможно. Возможно, может быть, если вы принимаете обслуживание самостоятельно, а не IIS, но даже тогда я не думаю, что это возможно?