Erro de fluxo binário do IIS7

2

Estou lutando para entender o problema que estou vendo, por favor, aceite minhas desculpas se a pergunta for vaga. Estou executando um aplicativo asp clássico no IIS7 e tudo parece funcionar bem, exceto por um problema que me deixou perplexo.

Basicamente, os arquivos podem ser baixados do servidor, o que é feito usando o método sendBinary do componente Persits ASP Upload. Este componente funciona bem para o upload, etc, é apenas o download que eu tenho um problema.

O mais estranho é que não posso ter uma página asp pura que sirva ao arquivo binário. Tudo funciona bem no II6, mas no II7 existe um problema estranho. Por exemplo, isso não funciona.

<%
SET objUpload = server.createObject("Persits.Upload")
    objUpload.sendBinary "D:\sites\file.pdf", true, "application/octet-binary", true
SET objUpload = NOTHING
%>

No entanto, se eu colocar qualquer coisa na frente do código asp, o arquivo será exibido corretamente.

serve this
<%
SET objUpload = server.createObject("Persits.Upload")
    objUpload.sendBinary "D:\sites\file.pdf", true, "application/octet-binary", true
SET objUpload = NOTHING
%>

Eu também posso escrever algo para o fluxo de resposta primeiro e funciona bem.

<%
Response.Write("server this")
SET objUpload = server.createObject("Persits.Upload")
    objUpload.sendBinary "D:\sites\file.pdf", true, "application/octet-binary", true
SET objUpload = NOTHING
%>

Alguém tem alguma idéia do que poderia estar causando isso ou alguém já se deparou com uma situação semelhante? Tenho certeza de que tem algo a ver com a configuração no IIS 7.

    
por WDuffy 21.04.2010 / 19:23

1 resposta

2

Este é um problema conhecido com o IIS7.5 (Windows 2008). Eles agora têm "codificação em blocos" no meu padrão, e você não pode mais enviar o cabeçalho "content-length".

Persits aspupload define quando você passa "true" para o segundo parâmetro.

Não sei por que a MSFT não corrigiu esse bug.

Você pode encontrar uma solução alternativa em: link

    
por 12.10.2010 / 21:59