2012-03-09 9 views
1

ウェブアプリケーションでは、datalistのitemコマンドイベントで書かれたdocumnetをダウンロードしてダウンロードしていますが、「スレッドが中止されました」のようなエラーが出ています。君は。私のコードは落ち着いている。スレッドが中止されましたエラー? asp.netで?

protected void dtlstMagazine_ItemCommand(object source, DataListCommandEventArgs e) 
{ 
    try 
    { 
    objItMagBe.TitleId = Convert.ToInt32(e.CommandArgument); 
    dts = new DataSet(); 
    dts = objItMagBL.GetMagzineByTitleID(objItMagBe); 
    GetPopularMagazine(); 

    string Myfile = "../xxxx/DataFiles/" + dts.Tables[0].Rows[0]["Files"].ToString(); 
    if (File.Exists(Server.MapPath(Myfile)) == true) 
    { 
     Response.AppendHeader("Content-Disposition", "attachment; filename=" + Myfile); 
     Response.TransmitFile(Server.MapPath(Myfile)); 
     Response.End(); 
     Response.Flush(); 
    } 
    } 
    catch 
    { 

    } 
} 

答えて

1

あなたのResponse.End()は、その原因の可能性が高いです。これは、要求が終了したことをASP.NETに伝えているためです。

例外からのスタックトレースとは何ですか?.NETは例外がスローされていると思いますか?

2

これは、IISのスレッドを殺しているが、あなたはweb.configファイルでこれを変更する必要がありますので、ファイルが大きいようだ:

<httpRuntime 
    maxRequestLength="1048576" 
    executionTimeout="3600" 
    /> 

maxRequestLengthは

executionTimeoutがであるバイトであります秒

0

他のコードでは表示されていませんか?通常、試しにキャッチしている間にリダイレクトすると、そのことが起こります。

+0

yaキャッチがありますが、私はここにJohn氏を配置しません。 –

+0

おそらく、それはColinによって提案されたResponse.End()です。その行を削除してみてください。 – John

0

問題はResponse.End()の前にResponse.Flush()と呼んでいることです。これらのステートメントの順序を入れ替えると、問題はなくなります。

関連する問題