У меня сейчас есть нечто очень похожее (оно позволяет пользователю загружать TXT-файл, сгенерированный в самом коде).
Тот же код, что и у вас, но у меня нет Response.Flush()
где-либо.Вы можете попробовать закомментировать оба .Flush
es и посмотреть, что произойдет.
отредактировано это мой код (успешно позволяет пользователю загрузить файл TXT
string filename = "myfile.txt"; //made up filename
Response.AddHeader("Content-disposition", "attachment; filename=" + filename);
Response.ContentType = "application/octet-stream";
byte[] data = new byte[Encoding.UTF8.GetByteCount(_r)]; //_r is a string containing my txt
data = Encoding.UTF8.GetBytes(_r);
Response.ContentEncoding = Encoding.UTF8; // handling special chars
Response.BinaryWrite(data);
Response.End();