System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。 Výnimka vyhodená systémovým logom je znázornená na nasledujúcom obrázku:
Dôvodom tejto výnimky je, že keď uložím stream, systém číta stream nad rámec veľkosti streamu.
Použite ten istý prúd dvakrát, aby ste si zaznamenali 2 body:
1. Stream uloží pozíciu: Stream.Position, ktorá predstavuje pozíciu v aktuálnom toku, a každé čítanie začne z tejto pozície, pričom táto pozícia sa po dokončení čítania nastaví na poslednú čítaciu pozíciuPrvýkrát, keď čítam celý stream, pozícia sa dostane na koniec, a druhýkrát nemôžem čítať obsah.Takže musíte nastaviť kontext pred druhým čítaním. Request.InputStream.Position=0;
2. Príkaz using sa nedá použiť pri prvom čítaní. Príkaz using vlastne pridáva try, finally block, v ktorom sa vykoná metóda Dispose objektu. Týmto spôsobom druhé čítanie nebude obsahovať žiadny obsah.
Kód rozlíšenia:
Pred uložením toku zavolajte nasledujúci kód:
|