2016-07-28 11 views
0

Ich verwende diesen Code, um die Datei herunterzuladen, aber es löst einen Fehler aus. Bitte helfen Sie mir im Umgang damit.Warum mein Code Thread abbricht Fehler verursacht?

Thread wurde abgebrochen.

protected void Download_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     string filePath = Convert.ToString(Attachment); 
     string fullFilePath = ("../../SiteImages/" + "donald.jpg"); 
     Response.Clear(); 
     Response.ClearHeaders(); 
     Response.ClearContent(); 
     Response.AddHeader("Content-Disposition", "attachment; filename=\"" + Path.GetFileName(fullFilePath) + "\""); 
     Response.ContentType = ContentType; 
     Response.TransmitFile(fullFilePath); 
     //MngLogs.InsertAuditsInfo("Tender downloaded via" + " " + MngLogs.PageName, MngLogs.UserMacAddress, MngLogs.UserIPAddress, UserID, "Download"); 
     //Response.End(); 
    } 
    catch (Exception ex) 
    { 
     Utility.Msg_Error(Master, ex.Message); 
    } 
} 
+0

Woher haben Sie den Fehler? 'Reponse.End()' löst immer eine 'ThreadAbortException' aus. Schauen Sie sich [this] (http://stackoverflow.com/questions/20988445/how-to-avoid-response-end-thread-was-being-aborted-exception-during-the-exce) an und [dies] (http://stackoverflow.com/questions/5834049/what-causes-thread-was-being-aborted-exception-to-happen-at-random-and-show-th) Beitrag. –

+0

ja gleichen Ort, und ich habe es entfernt, aber immer noch nicht eine Datei herunterladen – Cuckoo

+0

und wirft keinen Fehler, aber immer noch keine Datei herunterladen – Cuckoo

Antwort

0

Könnte dieser Download-Ansatz funktionieren?

try 
{ 
    using (var client = new WebClient()) 
    { 
     client.DownloadFile(urlToFileOnInternet, pathToFileOnComputer); 
    } 
} 
catch (Exception ex) 
{ 
    Utility.Msg_Error(Master, ex.Message); 
} 

Ich hoffe, dies hilft.

+0

Was ist urlToFileOnInternet? – Cuckoo

+0

Versuchen Sie nicht, eine Datei herunterzuladen? Zitat: "Ich benutze diesen Code, um die Datei herunterzuladen" – MasterXD

+0

eine Datei vom Webserver in meinen eigenen Ordner herunterladen – Cuckoo

0

ersetzen

Response.End(); 

mit diesem:

HttpContext.Current.Response.Flush(); 
HttpContext.Current.Response.SuppressContent = true; 
HttpContext.Current.ApplicationInstance.CompleteRequest(); 

Response.End(); immer eine Ausnahme auslösen, weil es aktuellen Thread abbrechen wird. Sie können mehr über dieses Verhalten hier lesen: Is Response.End() considered harmful?, How to Avoid Response.End() "Thread was being aborted" Exception during the Excel file download.

+0

funktioniert nicht immer noch kein Download – Cuckoo

+0

@Cuckoo überprüfe mein Update. – Lesmian

Verwandte Themen