Asp classic 无法使用经典asp iis 7.5下载文件

Asp classic 无法使用经典asp iis 7.5下载文件,asp-classic,connection,download,Asp Classic,Connection,Download,我正在一个客户端网站上工作,该网站采用经典asp编码,终端服务器上安装了iis 7.5和windows server 2008 r2。我遇到的问题是当用户尝试下载jpg文件时。代码很好,在他们更换服务器之前就已经运行了,但是现在当您单击下载链接时,您会看到以下页面之一: The connection was reset ( Firefox) Connection closed by remote server ( Opera

我正在一个客户端网站上工作,该网站采用经典asp编码,终端服务器上安装了iis 7.5和windows server 2008 r2。我遇到的问题是当用户尝试下载jpg文件时。代码很好,在他们更换服务器之前就已经运行了,但是现在当您单击下载链接时,您会看到以下页面之一:

The connection was reset                       ( Firefox)
Connection closed by remote server             (  Opera )
Internet Explorer cannot display the webpage   (   ie   )

只有在尝试从这些页面下载文件时才会发生这种情况,因为所有其他页面都按预期工作。我完全搞不懂到底是什么问题,我已经花了几个小时在论坛上浏览了很多我能想到的东西。我猜这更多的是一个后端配置问题,但我并不乐观,也不知道需要做哪些更改才能使其再次工作

可能有很多问题。我建议运行Fiddler的副本,以查看是否存在响应错误代码

由于这是经典的asp,请检查代码中是否有隐藏错误的内容。 这将是下一次错误恢复时的
。使用粗糙的调试技术,例如
response.write“got here”
,或将代码的进度写入日志文件,以查看停止的位置

它可能根本不是IIS。我猜这是一个文件权限问题

要查看的其他链接:


此代码在iis 7.5 win2k8r2上适用:


Response.AddHeader“内容长度”,可能需要iSz

chunk = 2048 
For i = 1 To iSz \ chunk 
    If Not Response.IsClientConnected Then Exit For 
    Response.BinaryWrite adoStream.Read(chunk) 
Next 

If iSz Mod chunk > 0 Then 
    If Response.IsClientConnected Then 
        Response.BinaryWrite adoStream.Read(iSz Mod chunk) 
    End If 
End If 

adoStream.Close 
Set adoStream = Nothing 

Response.End 
End Sub 

如果有帮助的话,我注意到我可以下载非常小的文件(3KB),但我不能下载10KB。这绝对是一个超时问题(或者在我看来是这样)。我尝试添加会话。超时=180,但无效。非常感谢任何可能的解决方案。超时?下载3KB文件需要很长时间吗?10k文件超时了?除了大小,文件之间还有什么不同。可能会查找循环代码,但该代码的条件是10kb文件不存在。我在浏览器中手动设置url,它看起来是这样的:连接持续的时间很短,因此使用一个小文件,我可以处理请求。在这两种情况下,它都是即时的,而不是3kb的文件实际使用“保存”对话框提示。这是一个504错误(网关超时)。在发布这篇文章时,我完全忽略了一件事,那就是这是从32位服务器到64位服务器的迁移。似乎我错过了一些设置,或者配置文件中的某些内容需要更改。这篇文章总结得很好,谢谢。我们确实实现了建议的大多数步骤,但是应用程序池用户而不是anon听起来很有希望。我要早起,已经起了33个小时了,现在正在努力工作。我很感谢你帮我做这件事,我会在我刚开始的时候把它发回来,希望我能从我长长的待办事项列表中查出来。再次感谢。问题已由外部技术人员解决。当我发现他们实施的解决方案时,我会发回。
chunk = 2048 
For i = 1 To iSz \ chunk 
    If Not Response.IsClientConnected Then Exit For 
    Response.BinaryWrite adoStream.Read(chunk) 
Next 

If iSz Mod chunk > 0 Then 
    If Response.IsClientConnected Then 
        Response.BinaryWrite adoStream.Read(iSz Mod chunk) 
    End If 
End If 

adoStream.Close 
Set adoStream = Nothing 

Response.End 
End Sub