0

私は、ターミナル サーバーにインストールされた iis 7.5 と Windows サーバー 2008 r2 を使用して、クラシック ASP でコーディングされたクライアント Web サイトで作業しています。私が経験している問題は、ユーザーが jpg ファイルをダウンロードしようとしたときです。コードは問題なく、サーバーを変更する前は機能していましたが、ダウンロード リンクをクリックすると、次のいずれかのページが表示されます。

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

これは、これらのページからファイルをダウンロードしようとしたときにのみ発生し、他のすべてのページは期待どおりに機能しています。問題が正確に何であるかについて私は完全に困惑しており、フォーラムや私が考えることができるものを何時間も調べてきました。これはバックエンドの構成の問題であると推測していますが、私は肯定的ではなく、これを再び機能させるために何を変更する必要があるのか​​ わかりません.

4

2 に答える 2

0

このコードは、iis7.5win2k8r2で機能します。


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 nextresponse.write "got here"または、コードの進行状況をログ ファイルに書き込んで停止箇所を確認するなど、大まかなデバッグ手法を使用します。

IIS ではない可能性があります。私の推測では、それはファイルのアクセス許可の問題です。

確認する追加のリンク:

IIS 7.0 で従来の ASP アプリケーションを動作させるためのガイド方法

于 2012-09-18T07:00:43.640 に答える