|
Ограничение на передоваемый рамер данных между Silverlight и WCF
|
|||
---|---|---|---|
#18+
Приветствую, мне понабилось отправлять на сервер файлы по нескольку штук и размером до 50 Мб. Для этого я написал Silverlight контрол, который делит прикрепленные файлы на блоки и отправляет их по очереди и WCF сервис, который собирает файл из кусков обратно и сохраняет в базу. Куски файлов передаются в виде объектов вот такого класса: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
Проблема возникла следующая: Если куски отправляемых файлов (поле PhotoPart) больше 10 кбайт, то отправки не происходить, происходит вот такой эксепшн: "Unhandled Error in Silverlight Application Неправильный результат из-за исключения, возникшего во время операции. См. описание исключения в InnerException. в System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()\n в PhotoLoader.PhotoLoaderServiceReference.StorePhotoPartCompletedEventArgs.get_Result()\n в PhotoLoader.MainPage.mPhotoLoadingServiceClient_StorePhotoPartCompleted(Object sender, StorePhotoPartCompletedEventArgs e)\n в PhotoLoader.PhotoLoaderServiceReference.PhotoLoadingServiceClient.OnStorePhotoPartCompleted(Object state)" Если передавать файлы не через WCF, а напрямую Web-приложению через http post запрос, то тогда в легкую передаются файлы по 10 Мб. У меня сложилось впечатление, что Silverlight шлет запросы WCF-у внутри GET запросов, поэтому и такое ограничение... вопрос, как это исправить, т.е. как сделать так, что можно было отправлять куски хотябы по 1 Мб??? конфигурация сервиса у меня сейчас такая: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
конфигурация Silverlight клиента: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
P.S.: когда искал решение наткнулся на статьи про file streaming через WCF, но мне это не подходит, мне интересней разобраться, почему блоки больше 10 кбайт не передаются... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2012, 22:14 |
|
Ограничение на передоваемый рамер данных между Silverlight и WCF
|
|||
---|---|---|---|
#18+
Вытащил InnerException, и то что я там увидел многое объясняет: Unhandled Error in Silverlight Application Форматтер сгенерировал исключение при попытке десериализовать сообщение: Ошибка десериализации параметра :photoPartDataObject. Сообщение InnerException было 'Ошибка десериализации объекта типа Business.DataObjects.PhotoPartDataObject. Превышена квота максимальной длины массива (16384) при чтении данных XML. Эту квоту можно увеличить, изменив свойство MaxArrayLength объекта XmlDictionaryReaderQuotas, используемого при создании устройства чтения XML.'. Теперь вопрос как изменить MaxArrayLength - т.е. как я могу получить доступ к объекту класса XmlDictionaryReaderQuotas выполняющего десериализацию / сериализацию данных при отправке / получении их??? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.05.2012, 15:03 |
|
|
start [/forum/topic.php?fid=19&msg=37779132&tid=1397244]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
92ms |
get tp. blocked users: |
2ms |
others: | 246ms |
total: | 435ms |
0 / 0 |