[WCF] Прием данных
От: SanyaVB  
Дата: 25.02.15 13:10
Оценка:
у меня в контракте два метода. Первый принимает, а второй возвращает byte[]

     [OperationContract(IsOneWay = false)]
     void Set(byte[] array);

        [OperationContract(IsOneWay = false)]
     byte[] Get();


Привязка такая
        WSHttpBinding binding = new WSHttpBinding(SecurityMode.None);
            binding.Security.Message.ClientCredentialType = MessageCredentialType.None;
            binding.ReaderQuotas.MaxArrayLength = 1048576000;
            binding.MaxReceivedMessageSize = 1048576000;
            binding.ReliableSession.Enabled = true;
            binding.ReliableSession.InactivityTimeout = TimeSpan.MaxValue;


Ситуация следующая. массив размером 52553237 (52 МБ) передается и получается без проблем! а вот когда массив 150 МБ, то метод Set отрабатывает, а вот метод Get зависает.
Все эти манипуляции производятся в пределах одного компьютера.

Может где то стоят ограничение на прием данных?
Re: [WCF] Прием данных
От: Sharov Россия  
Дата: 25.02.15 13:20
Оценка:
Здравствуйте, SanyaVB, Вы писали:

Что wcf-ный лог говорит?
Кодом людям нужно помогать!
Re[2]: [WCF] Прием данных
От: SanyaVB  
Дата: 25.02.15 14:55
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Здравствуйте, SanyaVB, Вы писали:


S>Что wcf-ный лог говорит?


Говорит вот что: Не удалось выделить буфер управляемой памяти размером 268435456 байт. Возможно, не хватает доступной памяти.

Пересобрал под x64 и заработало.
Re[3]: [WCF] Прием данных
От: Sharov Россия  
Дата: 26.02.15 07:50
Оценка:
Здравствуйте, SanyaVB, Вы писали:

SVB>Говорит вот что: Не удалось выделить буфер управляемой памяти размером 268435456 байт. Возможно, не хватает доступной памяти.


SVB>Пересобрал под x64 и заработало.


Не самый правильный подход: у Вас вероятно "буферизируемый" ответ, поэтому сервис загоняет ответ целиком в память. Для больших данных имеет смысл "стримовать". Система должна корректно работать как на x86 так и на x64.
Кодом людям нужно помогать!
Re: [WCF] Прием данных
От: hardcase Пират http://nemerle.org
Дата: 26.02.15 11:26
Оценка:
Здравствуйте, SanyaVB, Вы писали:

SVB>Все эти манипуляции производятся в пределах одного компьютера.


Зачем такие объемы гонять через WCF в пределах одной машины? Чем не подходит MMF?
/* иЗвиНите зА неРовнЫй поЧерК */
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.