Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
Столкнулся с такой проблемой... Пытаюсь передать из Silverlight'a на страницу aspx строку, которая содержит xml. Проблема в том, что срабатывает через раз... Выдаёт ошибку Недопустимая длина массива знаков Base-64 . У меня такое подозрение, что это связано с длинной передаваемой xml. Если сама xml небольшая, то всё нормально. Если бОльше - то появляется ошибка. Код такой: Silverlight страница Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. aspx страница Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. Как это исправить? Строка с xml может быть разной длины. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 14:07 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
Сейчас ещё раз проверил - иногда и на небольшого размера xml вылазит эта ошибка... Работает через раз... В чём тут может быть дело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 14:31 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
Много разных может быть причин. Вы же саму ошибку не отпостили. И что её выдаёт непонятно. Сама длина строки в базе64 может быть очень длинная. У интернетэксплорера есть ограничение в длине урл. Попробуйте другой браузер (не ИЕ). Если и там воспроизведётся, то смотрите свой вэбконфиг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 15:01 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
ShSerge, Спасибо за ответ. Вылетает конкретно на aspx странице на строчке Код: c# 1. Попробовал в Chrome, Firefox - тоже самое. Работает через раз на разных xml. Что нужно смотреть в Web.config? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 15:14 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
new_sergei, твоя главная ошибка это предположение, что один символ занимает один байт. В разных кодировках это по разному. Более того, разные символам могут занимать разное кол-во байтов. Например, в UTF-8 символы из ASCII диапазона занимают один байт, а русские буквы два. Поэтому никогда не следует приводить символ к байту. Правильный код должен быть таким: Код: c# 1. 2. При этом разумеется передающая и принимающая сторона должны использовать одну и ту же кодировку. Еще один небольшой совет - вместо коллекции Request используй специализированные коллекции (Request.QueryString, Request.Form и т.п.) т.к. а) это ясно указывает источник данных и б) в отдельных случаях это более безопасно т.к. не позволит передать параметры ожидаемые через POST с помощью GET запроса в query string. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 15:17 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
new_sergei, Я не помню точно. Нету у меня сейчас ни визуалстудии, ни вэбконфига под рукой. Посмотрите там, по-моему, были какие-то настройки то-ли на длину урл, то-ли на длину гет-запроса. Я один раз с этим сталкивался. Поставил подлиннее - заработало. Причём, в отладчике и так работало. Не работало уже тогда, когда задеплоил. Само выражение Convert.FromBase64String может быть здесь вовсе и не при чём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 15:25 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
bazile, Я попробовал сделать так, как Вы сказали. Код Silverlight: Код: sql 1. 2. 3. 4. 5. 6. На странице aspx я ничего не менял, т.е. Код: c# 1. 2. 3. 4. 5. Теперь не работает вообще. При каждом переходе Недопустимая длина массива знаков Base-64 на строке Код: c# 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 15:39 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
new_sergei, base64 кодировка использует символ "=", который имеет особое значение для query string параметров. И видимо он передается неправильно. Посмотри отладчиком, что твой код отправляет и что получает. Попробуй изменить код таким образом: Код: c# 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 15:56 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
new_sergei, Тогда воспользуйтесь самым простым средством - ломом и молотком браузером. Как я понял, там у Вас что-то типа документа. Возьмите свою нечитаемую строчку и вставьте её непосредственно в браузер, как дата-урл , только миме-тайп правильный напишите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 15:57 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
bazile, У меня в Silverlight в списке всех доступных референсов отсутствует namepace System.Web, поэтому HttpServerUtility.UrlTokenEncode(bytes) я не могу выполнить. Как его подключить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 17:03 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
ShSerge, Да, у меня на aspx передаётся по сути pdf, которая будет сформирована из этого xml. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 17:04 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
да что может быть проще: 1. логируй что передаешь 2. логируй что получаешь (имеется ввиду Request["InvoiceData"]) 3. сравни (хоть побайтно, Notepad++ (alt+d) & HEX Plugin, для него же, отлично помогут в этом) результаты первых двух шагов выкладывай сюда в спойлере, если не разберешься ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2012, 22:47 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
24spam@tut.byУ меня в Silverlight в списке всех доступных референсов отсутствует namepace System.Web, поэтому HttpServerUtility.UrlTokenEncode(bytes) я не могу выполнить. Как его подключить? С Silverlight не работал, не знаю. Возможно что никак. Вот декомпилированный код функции UrlTokenEncode, попробуй его: Код: 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. 34. 35. Вообще же тебе следует подумать о другом способе передачи данных т.к., как уже отметил ShSerge, длина данных передаваемых через query string ограничена. Рассчитывать можно примерно на 2Кб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2012, 15:54 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
bazile, Спасибо. Буду пробовать. Но дело в том, что мне надо передать эту xml именно таким способом. Мне так сказал сделать мой начальник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2012, 17:25 |
|
||
|
Недопустимая длина массива знаков Base-64
|
|||
|---|---|---|---|
|
#18+
У меня похожая ситуация. Нашли причину? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2012, 11:03 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37721997&tid=1359236]: |
0ms |
get settings: |
10ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
2ms |
| others: | 220ms |
| total: | 386ms |

| 0 / 0 |
