Я пытаюсь создать несколько экземпляров одного и того же сервера WCF (NetNamedPipes) (запуск приложения несколько раз), но сталкиваюсь с проблемой при запуске второго экземпляра ... Экземпляры сервера используют разные имена каналов и имена конечных точек. Я использовал пример из здесь , устанавливая только конечную точку и имя канала через аргументы запуска. Но во втором случае я получаю сообщение об ошибке, что существует неисправное состояние и, следовательно, не может быть открыт сервисный узел.
Использование связывания Http с различными портами работает, но я хотел бы придерживаться именованных каналов.
Сервер:
[ServiceContract]
public interface IServiceContract
{
[OperationContract]
string Operation(string value);
}
class Program : IServiceContract
{
static void Main(string[] args)
{
Console.WriteLine($"Pipe: {args[0]}");
Console.WriteLine($"Endpoint: {args[1]}");
ServiceHost sh = new ServiceHost(typeof(Program), new Uri($"net.pipe://{args[0]}"));
sh.AddServiceEndpoint(typeof(IServiceContract), new NetNamedPipeBinding(), args[1]);
sh.Open();
Console.ReadLine();
}
public string Operation(string value)
{
return value.ToUpper();
}
}
Сообщение об ошибке: AddressAlreadyInUseException
, поскольку другая конечная точка уже прослушивает эту конечную точку.