Ошибка ASP.NET Response.TransmitFile при первой загрузке

У меня есть код на странице aspx, а затем, когда пользователи загружают страницу, он начинает загружать zip. Выглядит так:

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

Проблема в том, что в ПЕРВЫЙ раз, когда это происходит, я получаю следующую ошибку:

альтернативный текст

Zip-файл существует и не находится в моем каталоге wwwroot. Если я обновлю страницу, файл загрузится нормально.

Если я оборачиваю код в Try Catch, я получаю исключение System.Threading.Threadabort с сообщением:

Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack.

ПРИМЕЧАНИЕ. На самом деле я получаю это исключение каждый раз. Я думаю, это просто связано с Response.End

Спасибо за любую помощь!


person Luke Belbina    schedule 19.10.2010    source источник
comment
Мне кажется странным, что в диалоговом окне сообщается о загрузке GetHands.aspx. Может, это подсказка?   -  person Aaron Anodide    schedule 19.10.2010
comment
Добавьте Response.Clear() в начало   -  person hova    schedule 31.12.2010


Ответы (1)


Response.End, вероятно, выдаст исключение, чтобы выйти быстро и грязно, так что это нормально, однако, этот файл.. Я подозреваю, что ваш Response.End все испортил, вы пытались сначала выполнить .Flush()? Вы можете получить подсказку, используя Fiddler, чтобы проверить, что на самом деле возвращает сервер.

person Onkelborg    schedule 19.10.2010
comment
ну, это супер странно, думаю, это проблема IE. отлично работает в фаерфоксе. если я нажимаю ссылку в IE в первый раз для загрузки, она работает, просто если я скопирую и вставлю ее. - person Luke Belbina; 19.10.2010
comment
Вы уже пробовали fiddler2.com/fiddler2? Если нет, сделайте это. Хорошо знать, где что-то идет не так. Я вижу одну вещь в вашем коде, которая выглядит не очень хорошо, я думаю, что имя файла должно быть (кавычки) в content-disposition - person Onkelborg; 19.10.2010