none
Download de arquivos RRS feed

  • Pergunta

  • Olá, tenho uma aplicação em MVC onde é possível realizar download e arquivos. O problema que estou tendo é que enquanto o download está sendo feito, nenhuma outra requisição asp funciona.

    Como eu faria para resolver esse problema além de permitir que sejam feitos vários download simultaneamente?

    Eu achei sobre páginas assíncronas, será que funcionaria para esse caso?

    Obrigado.

    quarta-feira, 30 de junho de 2010 12:53

Respostas

  • eu fiz uns testes aqui, e isso só ocorre quando o arquivo não está salvo em disco. Eu salvei o arquivo em disco e psoteriormente fiz o download e funcionou perfeitamente.

    Alguém sabe me dizer  se sem salvar em disco, é possível fazer o download sem problemas?

    quinta-feira, 8 de julho de 2010 17:00
  • Alguém saberia me explicar mais ou menos como funciona o response.flush? Eu fiz uns testes e verifiquei que quando utilizo o response.flush as requisições são armazenadas em uma espécie de fila e executada após o download acabar. Quando retirei esse comando, enquanto estava sendo feito o download as requisições funcionaram normal.

    quinta-feira, 15 de julho de 2010 19:42

Todas as Respostas

  • Não sei se entendi seu problema direito, o seu servidor não responde qnd um download está sendo feito?

    Páginas assincronas são usadas para gerar mais escalabilidade, ou seja para liberar o processo do IIS (no caso de uma aplicacao asp.net) para aceitar mais requisições enquanto a requisição assincrona é processada usando outro processo. Isso é útil quando você tem alguma rotina longa sendo executada durante a requisição de uma página. Mas teoricamente o IIS e a sua aplicação deveriam responder para mais de um request simultaneamente.

     

     

    quarta-feira, 30 de junho de 2010 18:12
  • Quando eu clico em um link para chamar a action do download o servidor para de responder, inclusive enquanto o download está sendo feito.
    quarta-feira, 30 de junho de 2010 19:19
  • O servidor q vc está usando é o integrado com o Visual Studio ou o IIS? Posta o código aqui pra gente dar uma olhada.
    quarta-feira, 30 de junho de 2010 19:40
  • cara, eu retorno um fileResult.

    Eu crio um array de bytes e retorno um fileResult(bytes,content,nome)

    teste com arquivo de uns 200mb.

    Só isso que eu faço.

    quarta-feira, 30 de junho de 2010 19:53
  • Então, mas por isso eu perguntei se vc está usando o servidor integrado do Visual Studio, ali vc não consegue fazer mais de request mesmo, tente publicar em um IIS na sua máquina.
    quarta-feira, 30 de junho de 2010 20:03
  • Desculpe, eu esquci de responder essa pergunta.

    Então, eu testei tanto local no IIS como na web. Nenhuma das duas maneiras funcionaram.

    quarta-feira, 30 de junho de 2010 20:15
  • Concordo com o VinTem, a impressão é de que existe alguma restrição no seu IIS.

    Faça um teste, simplesmente colocando um arquivo .zip e faça o download desse arquivo diretamente sem usar asp.net e tente navegar exatamente como quando vc faz o download via asp.net.

    Assim vai ser possível descobrir se há ou não restrição no IIS.


    Iuri André Stona
    quinta-feira, 1 de julho de 2010 18:31
  • Mas a aplicação foi publicada na locaweb e continua dando o mesmo problema. Tem alguma relação com o fato do arquivo estar na memória?

    Por a caso vocês já testaram ou fizeram algo parecido?

    quinta-feira, 1 de julho de 2010 18:42
  • eu fiz uns testes aqui, e isso só ocorre quando o arquivo não está salvo em disco. Eu salvei o arquivo em disco e psoteriormente fiz o download e funcionou perfeitamente.

    Alguém sabe me dizer  se sem salvar em disco, é possível fazer o download sem problemas?

    quinta-feira, 8 de julho de 2010 17:00
  • Alguém saberia me explicar mais ou menos como funciona o response.flush? Eu fiz uns testes e verifiquei que quando utilizo o response.flush as requisições são armazenadas em uma espécie de fila e executada após o download acabar. Quando retirei esse comando, enquanto estava sendo feito o download as requisições funcionaram normal.

    quinta-feira, 15 de julho de 2010 19:42