Вы делаете одну странную вещь.
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.Cookies.Clear();
ASP.NET сам размещает некоторые заголовки. Пожалуйста, постарайтесь не удалять их и использовать собственные (если они существуют для заголовков, которые вы пытаетесь изменить, конечно) методы ASP.NET для изменения заголовков ответов.
Также вы можете настроить прокси-сервер отладки HTTP. Это поможет вам понять, что именно вы делаете неправильно. Вот некоторые прокси-серверы для отладки HTTP, которые я знаю: Fiddler , Wireshark или Чарльз (платный, требуется Java) .
Этот парень достигнута загрузка файла через возврат System.IO.File
. Также этот вопрос выглядит как ваш.
Проверьте эти ответы, они могут вам помочь.
Я добился загрузки названного файла с помощью:
[HttpGet]
public void Get()
{
Response.Headers.Add("Content-Disposition", "attachment; filename=\"file.bin\"");
var buffer = Enumerable.Repeat((byte) 0xF, 2048).ToArray(); //bytes
Response.Body.Write(buffer, 0, buffer.Length);
}
Проверено на Google Chrome (версия 77.0.3865.90). Файл загружен и содержит 2048 байт данных.
Ответ сервера в Fiddler: снимок экрана