Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 24894|Ответ: 0

[Источник] Stream Stream использует несколько мер предосторожности

[Скопировать ссылку]
Опубликовано 02.08.2019 13:52:30 | | | |
System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
Исключение, созданное системным журналом, показано на следующем рисунке:



Причина исключения в том, что когда я сохраняю поток, система читает его размер сверх самого потока.

Используйте один и тот же поток дважды, чтобы отметить 2 пункта:

1. Поток сохраняет позицию: Stream.Position, которая представляет позицию в текущем потоке, и каждое чтение начинается с этой позиции, а после завершения чтения эта позиция будет установлена на последнюю позицию чтенияВ первый раз, когда я читаю весь стрим, позиция доходит до конца, а во второй раз я не могу прочитать содержание.Поэтому нужно задать контекст до второго чтения. Request.InputStream.Position=0;

2. Использование не может использоваться при первом чтении. Оператор using фактически добавляет try, наконец блок, в котором выполняется метод Dispose объекта. Таким образом, при втором чтении не будет содержать никакого контента.


Код разрешения:

Перед сохранением потока вызовите следующий код:







Предыдущий:Baidu Wangpan обходит ограничения VIP и улучшает скорость загрузки
Следующий:Введение и практика NoSQL баз данных (на основе MongoDB и Redis)
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com