загрузить изображение более 16 КБ vs2010 c # asp.net - PullRequest
2 голосов
/ 29 августа 2011

Я хочу загрузить большие картинки (более 16 КБ) в базу данных (мне удалось с маленькими картинками) Я уже изменил MaxArrayLength на 2147483647 (по умолчанию это было 16384) во всех найденных местах. но все равно я получаю это сообщение об ошибке после отладки:

Средство форматирования выдало исключение при попытке десериализации сообщения: при попытке десериализации параметра произошла ошибка http://tempuri.org/:PicToAdd. Сообщение InnerException было «Произошла ошибка при десериализации объекта типа BL.BE.Picture. Максимальная квота длины массива (16384) была превышена при чтении данных XML. Эту квоту можно увеличить, изменив свойство MaxArrayLength объекта XmlDictionaryReaderQuotas, используемого при создании средства чтения XML. Строка 1, позиция 41545. '. Пожалуйста, смотрите InnerException для более подробной информации исходный код:

Line 218:        public string BLS_AddPicture(BL.BE.Picture PicToAdd) {
Line 219:            **return base.Channel.BLS_AddPicture(PicToAdd);**
Line 220:        }

Что я могу сделать, чтобы исправить это как можно быстрее !!! Спасибо

1 Ответ

0 голосов
/ 29 августа 2011

Вы должны изменить настройку XmlDictionaryReaderQuotas.MaxArrayLength в своей конфигурации WCF.

Вы можете сделать это в файле конфигурации:

<system.serviceModel>
    <bindings>
        <basicHttpBinding>
            <binding ...>
                <readerQuotas maxDepth="32" 
                              maxStringContentLength="8192"
                              maxArrayLength="16384"
                              maxBytesPerRead="4096" 
                              maxNameTableCharCount="16384" />

или в коде:

XmlDictionaryReaderQuotas lOQuotas = new XmlDictionaryReaderQuotas()
           {
                    MaxArrayLength = Int32.MaxValue,
                    MaxBytesPerRead = Int32.MaxValue,
                    MaxDepth = Int32.MaxValue,
                    MaxNameTableCharCount = Int32.MaxValue,
                    MaxStringContentLength = Int32.MaxValue
           };

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