Я пытаюсь заставить работать WCF-именованный канал связи между двумя процессами на одном компьютере (в XP), но у меня возникают проблемы с исчезновением "больших" сообщений.Сообщения, которые исчезают, содержат большой массив байтов, и я сузил ошибку до того, когда размер массива составляет около 16 КБ.Меньше, чем это, и сообщение проходит.Больше, чем это, и отправитель говорит, что все прошло нормально, но его так и не получили.Я попытался увеличить размеры буфера на отправителе и получателе в соответствии с этим кодом для сервера:
PipeServer pipeServer = new PipeServer();
ServiceHost serviceHost = new ServiceHost(pipeServer, new Uri[] { new Uri(baseName) });
NetNamedPipeBinding netNamedPipeBinding = new NetNamedPipeBinding();
netNamedPipeBinding.MaxBufferPoolSize = 5000000;
netNamedPipeBinding.MaxBufferSize = 500000;
netNamedPipeBinding.MaxReceivedMessageSize = 500000;
serviceHost.AddServiceEndpoint(typeof(ISSNPipeServer), netNamedPipeBinding, pipeName);
и этот код для клиента:
_callbacks = new PipeClientCallbacks();
NetNamedPipeBinding netNamedPipeBinding = new NetNamedPipeBinding();
netNamedPipeBinding.MaxBufferPoolSize = 5000000;
netNamedPipeBinding.MaxBufferSize = 500000;
netNamedPipeBinding.MaxReceivedMessageSize = 500000;
_pipeFactory = new DuplexChannelFactory<ISSNPipeServer>(_callbacks,
netNamedPipeBinding,
new EndpointAddress(_targetPipe));
_pipeProxy = _pipeFactory.CreateChannel();
Я в конечном итоге ищудля переноса массивов размером 60 КБ, но это мой первый серьезный опыт WCF, и я даже не представляю, с чего начать.