Я использую WCF для отправки и получения данных в 2 разных приложения win form, запущенных на одном компьютере.Я использую namedpipe и duplexchannel.Моя реализация на стороне клиента показана ниже.
InstanceContext myContext = new InstanceContext(this);
NetNamedPipeBinding nb = new NetNamedPipeBinding();
nb.MaxBufferPoolSize = 5000000;
nb.MaxBufferSize = 500000;
nb.MaxReceivedMessageSize = 500000;
nb.ReceiveTimeout = TimeSpan.FromMinutes(5);
DuplexChannelFactory<IService> myProxy = new DuplexChannelFactory<IService>(myContext, nb, new EndPointAddress("net.pipe://localhost/MyService"));
IService myServiceClient = myProxy.CreateChannel();
А реализация на стороне сервера показана ниже:
NetNamedPipeBinding np = new NetNamedPipeBinding();
np.MaxBufferPoolSize = 5000000;
np.MaxBufferSize = 500000;
np.MaxReceivedMessageSize = 500000;
host.AddServiceEndpoint(typeof(IService), np, "net.pipe://localhost/MyService");
host.OpenTimeout = TimeSpan.FromMinutes(5);
host.CloseTimeout = TimeSpan.FromMinutes(5);
host.Open();
Я могу передать около 100 объектов (ObservableCollection<Customer>
) из 1 приложения черезобратный звонок в другое приложение.Но если я сделаю 1000 или более объектов, произойдет следующая ошибка исключения тайм-аута.
Запись в канал не была завершена в течение отведенного времени ожидания 00:00:00.Время, отведенное для этой операции, могло быть частью более длительного времени ожидания.
В чем заключается ошибка в моем коде?Пожалуйста, помогите мне решить эту проблему.
Заранее спасибо ...