Ваша фактическая служба прослушивает net.tcp://localhost:9000/Services/MyService/
- поэтому попробуйте изменить свой код так:
var endPoint = new EndpointAddress("net.tcp://localhost:9000/Services/MyService/");
var binding = new NetTcpBinding { TransferMode = TransferMode.Buffered, SendTimeout = TimeSpan.MaxValue };
var channel = new ChannelFactory<IMyService>(binding, endPoint);
var proxy = channel.CreateChannel();
Помимо изменения адреса, также используйте TransferMode.Buffered
(вместо Streamed
), который используется по умолчанию - я не вижу никакой конфигурации в вашей конфигурации на стороне сервера, которая указала бы, что вы используете режим потоковой передачи.
Адрес net.tcp://localhost:9000/Services/MyService/mex
является обмен метаданными адрес - не ваша услуга.Эта конечная точка необходима для того, чтобы ваши клиенты могли опрашивать службу, чтобы узнать, какой метод сервиса он предлагает, какие параметры он ожидает и т. Д. - все, что необходимо для создания прокси-кода на стороне клиента.Но это НЕ адрес службы, на которой живет ваша реальная служба и отвечает на запросы.