Қате туралы жауап беру ()

Менің өтінімімде файлды қотаруым қажет, сондықтан мен бұл кодты қолданамын:

 Response.ContentType = "application/octet-stream";                    
 Response.AppendHeader("Content-Disposition", "attachment; filename =" + strFileName + ".xls");
 Response.TransmitFile(strFilePath);
 Response.End();

at Response.End() i am getting an error ThreadAbortException

Бұл қате үшін httpApplication.CompleteRequest (), бірақ мен оны пайдалана алмаймын.

Төменде httpApplication.CompleteRequest() деген код бар,

Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename =" + strFileName + ".xls");
Response.TransmitFile(strFilePath);
HttpApplication.CompleteRequest();

HttpApplication.CompleteRequest() функциясын пайдаланған кезде, мен бұл қатені аламын

An object reference is required for the non-static field, method, or property 'System.Web.HttpApplication.CompleteRequest()'

Мен күмәнім жоқ деп үміттенемін ... маған көмектес

2
ThreadAbortException хабарламасының дәлдігі нені білдіреді?
қосылды автор Dan Puzey, көзі
ThreadAbortException хабарламасының дәлдігі нені білдіреді?
қосылды автор Dan Puzey, көзі
Файлды қызмет көрсету үшін, оны aspx бетінен беру үшін жалпы өңдегішті (.ashx файлын) пайдалана аласыз.
қосылды автор user1429080, көзі
Файлды қызмет көрсету үшін, оны aspx бетінен беру үшін жалпы өңдегішті (.ashx файлын) пайдалана аласыз.
қосылды автор user1429080, көзі
бұл қате болды «Код оңтайландырылған немесе тірі жақтау қоңыраулар стекінің үстінде болғандықтан, өрнекті бағалау мүмкін емес»
қосылды автор salah9, көзі
бұл қате болды «Код оңтайландырылған немесе тірі жақтау қоңыраулар стекінің үстінде болғандықтан, өрнекті бағалау мүмкін емес»
қосылды автор salah9, көзі

12 жауаптар

Response.End() is expected to throw a ThreadAbortException.
This is by design, so that the rest of the page response is not processed.

Бұл алып тастау өте жақсы, және бұл беттің одан әрі өңделуін қамтамасыз етеді.

Refer: HttpResponse.End

CompleteRequest әдісі ерекше жағдайды тудырмайды және кейінгі кодты береді   CompleteRequest әдісіне шақыру орындалуы мүмкін. Егер сіздің   Кейінгі кодты орындаудан аулақ болу керек, ал егер   Аяқталу нәтижесін қолдануға болады, орнына End деп қоңырау шалуға болады   CompleteRequest.

6
қосылды

Response.End() is expected to throw a ThreadAbortException.
This is by design, so that the rest of the page response is not processed.

Бұл алып тастау өте жақсы, және бұл беттің одан әрі өңделуін қамтамасыз етеді.

Refer: HttpResponse.End

CompleteRequest әдісі ерекше жағдайды тудырмайды және кейінгі кодты береді   CompleteRequest әдісіне шақыру орындалуы мүмкін. Егер сіздің   Кейінгі кодты орындаудан аулақ болу керек, ал егер   Аяқталу нәтижесін қолдануға болады, орнына End деп қоңырау шалуға болады   CompleteRequest.

6
қосылды

Осы кодты қолданып көріңіз:

Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename =" + strFileName + ".xls");
Response.TransmitFile(strFilePath);
HttpContext.Current.ApplicationInstance.CompleteRequest();
3
қосылды

Осы кодты қолданып көріңіз:

Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename =" + strFileName + ".xls");
Response.TransmitFile(strFilePath);
HttpContext.Current.ApplicationInstance.CompleteRequest();
3
қосылды

Тек осы жолға түсініктеме беріңіз және сіз баруға жақсысыз:

//Response.End();

Бұл мен үшін жұмыс істеді :)

0
қосылды

Тек осы жолға түсініктеме беріңіз және сіз баруға жақсысыз:

//Response.End();

Бұл мен үшін жұмыс істеді :)

0
қосылды

Қате пайда болады, себебі сіз ASP жаңарту панелін немесе JavaScript қызметін пайдаланатын кез келген басқару элементін пайдаланасыз. JavaScript немесе ScriptManager немесе сценарийлерсіз ASP немесе HTML-ден басқару тегімен қолдануға тырысыңыз.

0
қосылды

Қате пайда болады, себебі сіз ASP жаңарту панелін немесе JavaScript қызметін пайдаланатын кез келген басқару элементін пайдаланасыз. JavaScript немесе ScriptManager немесе сценарийлерсіз ASP немесе HTML-ден басқару тегімен қолдануға тырысыңыз.

0
қосылды

Қате пайда болады, себебі сіз ASP жаңарту панелін немесе JavaScript қызметін пайдаланатын кез келген басқару элементін пайдаланасыз. JavaScript немесе ScriptManager немесе сценарийлерсіз ASP немесе HTML-ден басқару тегімен қолдануға тырысыңыз.

0
қосылды

Мен бұл мәселені бастан кешірдім және келесі кодымен шештік

ScriptManager sm = ScriptManager.GetCurrent(this.Page);
              sm.RegisterPostBackControl(this.grid);
0
қосылды

Мен бұл мәселені бастан кешірдім және келесі кодымен шештік

ScriptManager sm = ScriptManager.GetCurrent(this.Page);
              sm.RegisterPostBackControl(this.grid);
0
қосылды

Мен бұл мәселені бастан кешірдім және келесі кодымен шештік

ScriptManager sm = ScriptManager.GetCurrent(this.Page);
              sm.RegisterPostBackControl(this.grid);
0
қосылды