Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 24894|Resposta: 0

[Fonte] Stream Stream Use múltiplas precauções

[Copiar link]
Publicado em 02/08/2019 13:52:30 | | | |
System.ArgumentOutOfRangeException: 索引超出范围。必须为非负值并小于集合大小。
A exceção lançada pelo log do sistema é mostrada na figura a seguir:



O motivo da exceção é que, quando salvo o stream, o sistema lê o stream além do tamanho do stream.

Use o mesmo riacho duas vezes para anotar 2 pontos:

1. O fluxo salvará uma posição: Stream.Position, que representa a posição no fluxo atual, e cada leitura começará a partir dessa posição, sendo essa posição definida para a última posição de leitura após a conclusão da leituraNa primeira vez que li a transmissão inteira, a posição chega ao fim, e na segunda não consigo ler o conteúdo.Então você precisa definir o contexto antes da segunda leitura. Request.InputStream.Position=0;

2. A instrução using não pode ser usada na primeira leitura. A instrução using na verdade adiciona um bloco try, finally block, no qual o método Dispose do objeto será executado. Dessa forma, a segunda leitura não conterá nenhum conteúdo.


Código de resolução:

Antes de salvar o fluxo, chame o seguinte código:







Anterior:Baidu Wangpan contorna as restrições VIP e melhora a velocidade de download
Próximo:Introdução e prática de bancos de dados NoSQL (baseados em MongoDB e Redis)
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com