0

我正在开发一个用经典 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   )

这只发生在尝试从这些页面下载文件时,所有其他页面都按预期工作。我完全不知道问题可能是什么,我已经花了几个小时浏览论坛和我能想到的任何东西。我猜这更像是一个后端配置问题,但我并不积极,也不知道需要改变什么才能让它再次工作。

4

2 回答 2

0

此代码适用于 iis 7.5 win2k8r2:


Sub s_getFile(sPath, sfilename, sBaseName)

Response.Buffer = False 
Server.ScriptTimeout = 30000 

Response.ContentType = "application/x-unknown" 

Response.AddHeader "Content-Disposition", "attachment; filename=" & sfilename 

Set adoStream = CreateObject("ADODB.Stream") 

adoStream.Open() 
adoStream.Type = 1 
adoStream.LoadFromFile(sPath & "\" & sBaseName) 

iSz = adoStream.Size 

Response.AddHeader "Content-Length", 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 
于 2012-10-30T00:17:11.880 回答
0

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

由于这是经典的 asp,请检查代码中是否存在任何可能隐藏错误的内容。这将是on error resume next。使用粗略的调试技术,例如response.write "got here"将代码进度写入日志文件,以查看停止的位置。

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

其他要查看的链接:

如何获得在 IIS 7.0 下运行的经典 asp 应用程序的指南

于 2012-09-18T07:00:43.640 回答