Файл не загружается при замене Response.End () на ApplicationInstance.CompleteRequest () - PullRequest
0 голосов
/ 10 июня 2019

Я хотел бы создать файл для загрузки.Вот оригинальный код для этого:

Response.Clear()
Response.ContentType = "text/html"
Response.AddHeader("Content-Disposition", String.Format("attachment; filename=""Dashboard_{0}.html""", time))
Response.Write(html)
Response.End()

Выглядело все в порядке.Файл был загружен нормально, но я нашел следующее сообщение в Output.

Первое случайное исключение типа 'System.Threading.ThreadAbortException' произошло в mscorlib.dll

Я пытался найти решения, как исправить это исключение, и я видел, как все говорили о замене Response.End() на HttpContext.Current.ApplicationInstance.CompleteRequest().

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

В таком случае, что мне делать, чтобы избавиться от исключения, когда должна происходить загрузка?Или я должен просто игнорировать исключение, так как оно, по-видимому, не приводит к неблагоприятным последствиям?

1 Ответ

0 голосов
/ 10 июня 2019

Здесь response.End ()

Чтобы имитировать поведение метода End в ASP, этот метод пытается вызвать исключение [ThreadAbortException].

Пожалуйста, посмотрите на это https://docs.microsoft.com/en-us/dotnet/api/system.web.httpresponse.end?redirectedfrom=MSDN&view=netframework-4.8#System_Web_HttpResponse_End

также попробуйте удалить

Response.Clear ()

...