System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。 Undtagelsen, som systemloggen kaster, vises i følgende figur:
Grunden til undtagelsen er, at når jeg gemmer streamen, læser systemet streamen ud over streamens størrelse.
Brug den samme strøm to gange for at notere 2 punkter:
1. Stream vil gemme en position: Stream.Position, som repræsenterer positionen i den aktuelle stream, og hver læsning starter fra denne position, og denne position sættes til den sidste læseposition, når aflæsningen er afsluttetFørste gang jeg læser hele streamen, når positionen slutningen, og anden gang kan jeg ikke læse indholdet.Så du skal sætte konteksten før anden gennemlæsning. Request.InputStream.Position=0;
2. Useling-sætningen kan ikke bruges ved første læsning. Usageing-sætningen tilføjer faktisk en try, til sidst blok, hvor objektets Dispose-metode vil blive udført. På denne måde vil den anden gennemlæsning ikke indeholde noget indhold.
Opløsningskode:
Før du gemmer flowet, skal du kalde følgende kode:
|