Стоимость использования Response.End()

Я использую следующий код для загрузки файлов, но я столкнулся с этим Response.End всегда вызывает Exception, Это стоимость моего приложения? Если да, как можно получить альтернативный способ загрузки файлов. Я пытался использовать Thread.ResetAbort() обработать исключение, но этот результат нежелательных дополнительных данных, которые будут добавлены в файл

try
            {
                   DownloadFiles();                       
                   Response.End();                   
            }
            catch (ThreadAbortException)
            {
               // Thread.ResetAbort();
            }
            catch (GSException ex)
            {
                Response.ClearHeaders();
                hdnResult.Value = ex.Message;
                // ClientScript.RegisterStartupScript(this.Page.GetType(), "checkDownloadError", "window.parent.checkDownloadError('" + ex.Message + "');", true);
            }
            catch (Exception)
            {
                Response.ClearHeaders();
                hdnResult.Value = "Oops! Something unexpected happened. Please try again later";
                //ClientScript.RegisterStartupScript(this.Page.GetType(), "checkDownloadError", "window.parent.checkDownloadError('Oops! Something unexpected happened. Please try again later');", true);
            }   

1 ответ

Если вы не хотите оплачивать стоимость броска исключения, Response.End Вы могли бы использовать Application.CompleteRequest метод вместо.

Другие вопросы по тегам