Окружающая среда
- Веб-сайт ASP.NET
- .NET 4.6.1
- Размещено в IIS 10.0 на Windows Server 2016.
Web.Config:
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthentication" />
</modules>
Нажатие кнопки:
protected void btnDownload_Click(object sender, System.EventArgs e)
{
try
{
string sPDFFilename = "doc.pdf";
byte[] data = GetData();
Response.ClearHeaders();
Response.ClearContent();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "Attachment; filename=" + sPDFFilename);
Response.AddHeader("content-length", (data.Length.ToString()));
Response.BinaryWrite(data);
Response.Flush();
HttpContext.Current.ApplicationInstance.CompleteRequest();
}
catch(Exception ex){ throw; }
}
Вопрос. При первом ответном сообщении браузер использует HTTP2 для своего протокола, и загрузка не удалась. Сайты Chrome "Ошибка сети – не удалось загрузить"
Щелкните ту же ссылку еще раз, и протокол вернется к http/1.1, и загрузка будет успешной.
- Подходит ли текущий синтаксис для доставки файла по протоколу HTTP2?
- Можно ли принудительно использовать http/1.1 в IIS10/ASP.NET 4.6.1?