РЕДАКТИРОВАТЬ: Извините, я думал, что этот кусок кода будет самоочевидным. Учитывая, что ОП пометил его как ASP.NET, я думал, что мы находимся в контексте ASP.NET.
Это может идти в прокси-файле, который связан с файлом, а не напрямую с файлом .exe. Затем прокси-файл отправляет файл .exe и заставляет (пытается убедить) браузер принудительно загрузить файл, а не запускать его напрямую.
HttpContext.Current.Response.Buffer = false;
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.AddHeader("Content-disposition", "attachment; filename=filename.exe");
HttpContext.Current.Response.AddHeader("Content-length", contentLength);
HttpContext.Current.Response.AddHeader("Content-Transfer-Encoding", "binary");
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.TransmitFile(filePath);