Я создаю службу wcf, теперь моя служба wcf размещена в консольном приложении, как показано ниже
PersonService = new ServiceHost(typeof(PersonService));
PersonService.AddServiceEndpoint(typeof(IPersonService), binding, "http://localhost:5645/PersonService");
PersonService.Open();
Тогда я использую сервис wcf, используя класс ChannelFactory;
EndpointAddress endPoint = new EndpointAddress("http://localhost:5645/PersonService");
ChannelFactory<IPersonService> engineFactory = new ChannelFactory<IPersonService>(binding, endPoint);
IPersonService personChannel = engineFactory.CreateChannel();
Тогда я могу использовать этот канал для вызова метода, такого как
personChannel.GetPersonById("1");
personChannel.Close();
Мой вопрос:
Как показано в коде выше, сервис всегда открыт, пока канал закрыт после окончания работы с ним. Это хорошее поведение, чтобы держать сервис открытым, или я должен открывать сервис, а затем закрывать его при каждом вызове, учитывая, что у меня может быть два клиента, вызывающих одну и ту же услугу одновременно.
Пожалуйста, сообщите.