Исключение тайм-аута обратного вызова именованной трубы WCF - PullRequest
1 голос
/ 06 марта 2011

Я использую 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.Время, отведенное для этой операции, могло быть частью более длительного времени ожидания.

В чем заключается ошибка в моем коде?Пожалуйста, помогите мне решить эту проблему.

Заранее спасибо ...

1 Ответ

1 голос
/ 13 декабря 2011

Похоже, этот вопрос также задавали и отвечали здесь: http://social.msdn.microsoft.com/Forums/eu/wcf/thread/38926593-8ea6-481d-8c43-072b73292f6a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...