Я знаю, что пост старый, но для других.
То, что вы можете сделать, это объединить ваш IFirst и ISecond в ICombinedService.Затем вы создадите один канал в вашем клиенте - это означает, что будет создан один экземпляр сеанса хоста вашего сервиса.
В своем текущем коде вы создаете соединение для IFirst и ISecond [Это два созданных вами экземпляра сеанса.]
IFirst iForst = firstFactory.CreateChannel ();// Первый сеанс создан!
ISecond iSecond = secondFactory.CreateChannel ();// Второй сеанс создан!
Чтобы изменить это поведение, вам нужно объединить сервисы в один сервис;и может делать за сеанс звонки на это.
class Client
{
static void Main(string[] args)
{
ChannelFactory<ICombinedFirstSecond> combinedFactory = new ChannelFactory<ICombinedFirstSecond>(new NetTcpBinding(), new EndpointAddress("net.tcp://localhost:8000"));
ICombinedFirstSecond iCombinedFirstSecond = combinedFactory.CreateChannel();
iCombinedFirstSecond.First();
iCombinedFirstSecond.Second();
Console.ReadLine();
}
}
Это то, что, я думаю, вы действительно ищете, а не одноразовая служба.