1>Um amigo fez uma pergunta hoje:
Por que não há erro ao usar o controle Arquivo para ler os caminhos de imagens, documentos e outros arquivos, mas ao ler arquivos de vídeo (como rmvb, etc.), ocorre um erro de que a página não pode ser exibida.
O trecho de código é o seguinte:
private void btnUpFiles_Click (remetente do objeto, System.EventArgs e)
{
string pathName=this.File1.PostedFile.FileName.ToString();
Response.Write(caminhoNome);
}
2>Comece a resolver o problema:
Achei que era um problema ao obter a string do caminho, então interceptei primeiro o caminho e o nome do arquivo, depois interceptei a extensão do arquivo e os salvei como strings, mas sempre acontecia um erro. O trecho de código é o seguinte:
string fullname=this.File1.PostedFile.FileName.ToString();//Obter o caminho completo
string firstname=fullname.Substring(0,fullname.LastIndexOf(".")+1);//Obtém o caminho e o nome do arquivo e remove o sufixo do arquivo
Session["firstname"]=firstname;//Salva em uma sessão
char [] spliter={'.'};//O delimitador usado para dividir a string
string [] fileName=this.File1.PostedFile.FileName.Split(spliter);//Salva cada parte do caminho completo dividido no array
Session["lastname"]=fileName[fileName.Length-1];// Salva o último elemento (sufixo do nome) na matriz como uma sessão
Response.Redirect("test.aspx");//Quero passá-lo para esta página para teste.
O método acima ainda falha e a causa do erro parece não ter nada a ver com strings.
3> O internauta "@@" sugeriu que era um problema de httpRuntime (obrigado):
Solução para o problema: Adicione o seguinte código a <system.web></system.web> em web.config:
<httpRuntime execuçãoTimeout="600" maxRequestLength="951200"
useFullyQualifiedRedirectUrl="true" minFreeThreads="8"
minLocalRequestFreeThreads="4" appRequestQueueLimit="100" enableVersionHeader="true"/>
4>Explicação do MSDN:
httpRuntime é a configuração do tempo de execução http do asp.net para determinar como lidar com solicitações para aplicativos asp.net.
execuçãoTimeout: Indica o tempo máximo permitido para executar a solicitação, em segundos
maxRequestLength: indica o tamanho máximo de upload de arquivo suportado pelo ASP.NET. Esse limite pode ser usado para evitar ataques de negação de serviço causados por usuários que passam grandes números de arquivos para o servidor. O tamanho especificado está em KB. O valor padrão é 4.096 KB (4 MB).
useFullyQualifiedRedirectUrl: indica se o redirecionamento do cliente é totalmente qualificado (no formato " http://server/path ", que é necessário para alguns controles móveis) ou se um redirecionamento relativo é enviado ao cliente em vez do final. Se for True, todos os redirecionamentos que não forem totalmente qualificados serão automaticamente convertidos para o formato totalmente qualificado. false é a opção padrão.
minFreeThreads: especifica o número mínimo de threads livres permitidos para executar novas solicitações. O ASP.NET mantém um número específico de threads livres para solicitações que exigem threads adicionais para concluir seu processamento. O valor padrão é 8.
minLocalRequestFreeThreads: Indica o número mínimo de threads livres mantidos pelo ASP.NET que têm permissão para executar novas solicitações locais. Este número de threads é reservado para solicitações recebidas do host local, caso algumas solicitações façam subsolicitações ao host local durante seu processamento. Isso evita possíveis conflitos causados pela reentrada recursiva no servidor Web.
appRequestQueueLimit: indica o número máximo de solicitações que o ASP.NET irá enfileirar para o aplicativo. As solicitações são enfileiradas quando não há threads livres suficientes para lidar com a solicitação. Quando a fila exceder o limite especificado nesta configuração, as solicitações recebidas serão rejeitadas com uma mensagem de erro "503 - Servidor muito ocupado".
enableVersionHeader: indica se o ASP.NET deve gerar um cabeçalho de versão. O Microsoft Visual Studio 2005 usa essa propriedade para determinar a versão do ASP.NET atualmente em uso. Para ambientes de produção, esta propriedade não é obrigatória e pode ser desativada.