У меня есть вспомогательные функции в библиотеке классов, которая создает и обслуживает пользовательские PDF:Response.BinaryWrite() работает на одной странице, а не другой
byte[] file = GetPdfBytesFromHtmlString(htmlCodeToConvert);
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Type", "binary/octet-stream");
response.AddHeader("Content-Disposition", "attachment; filename=" + filename + "; size=" + file.Length.ToString());
response.Flush();
response.BinaryWrite(downloadBytes);
response.Flush();
response.End();
Когда этот код выполняется на одной странице, все работает , Другая страница в основном идентична, единственная разница заключается в том, что вывод HTML, который будет записан в PDF, который я проверил, работает правильно. Однако ничего не происходит. Я прошел через код, он просто идет веселым способом, но браузер не запрашивает загрузку.
Я знаю, что я оставляю много кода, но поскольку он работает в одном экземпляре, а не в другом, я в тупике и ищу идеи для решения.
«Почти идентичный» имеет подозрительный вид «не идентичен». –
Являются ли данные в нерабочей версии фактически бинарными данными (например, предварительно подготовленным pdf) или это текстовые данные, которые вы просто пытаетесь записать с помощью 'BinaryWrite'? –
«Подозрительный» правильный. См. Мой ответ ниже. –