Не удалось загрузить ресурс: net :: ERR_EMPTY_RESPONSE при использовании HTTPHandler и Response.Redirect для просмотра PDF - PullRequest
0 голосов
/ 30 января 2020

Это не решается с помощью ASP. NET загрузки файла с сервера (6 ответов)

Я пытаюсь перенаправить в файл PDF используя Reponse.Redirect (pdfurl). Веб-приложение использует ASP. NET, JQuery, C# и AJAX Toolkit.

Это работает для большинства PDF-файлов, создаваемых приложением, однако для определенных страниц - не перенаправляется и на консоли я получаю ошибку

Не удалось загрузить ресурс: net :: ERR_EMPTY_RESPONSE .

Единственное Отличие от PDF-файлов, которые работают и те, которые не кажутся по размеру. Те, которые работают, составляют приблизительно 2,5 КБ, а те, которые не имеют 4,6 КБ.

Перенаправление работает, когда я запускаю приложение локально, однако я получаю сообщение об ошибке при работе по сети. Я попытался увеличить все тайм-ауты, которые вижу, но все еще получаю сообщение об ошибке.

Я посмотрел ASP. NET файл загрузки с сервера и изменил свой код на следующие

<%@ WebHandler Language="C#" Class="DownLoadFile" %>

using System;
using System.Web;
using System.IO;

public class DownLoadFile : IHttpHandler {

public void ProcessRequest (HttpContext context)
{
    System.Web.HttpRequest request = System.Web.HttpContext.Current.Request;
    string yourVariableValue = request.QueryString["yourVariable"];

    if (!string.IsNullOrEmpty(yourVariableValue))
    {
        HttpResponse response = System.Web.HttpContext.Current.Response;
        response.ClearContent();
        response.Clear();
        response.ContentType = "application/PDF";
        response.AddHeader("Content-Disposition",
                           "attachment; filename=" + Path.GetFileName(yourVariableValue) + ";");
        response.Redirect(yourVariableValue);
        response.Flush();
        response.End();
    }
}

public bool IsReusable {
    get {
        return false;
        }
    }
}

Я вызываю это как -

string handlerUrl = @"~/DownLoadFile.ashx?yourVariable=" + theReportName;
Response.Redirect(handlerUrl);

Я все еще получаю ошибку Не удалось загрузить ресурс: net :: ERR_EMPTY_RESPONSE. для некоторых больших pdfs.

Пример URL-адреса pdf:

"~ / Secure / GraphBin / Reports / yei3k3msbctxeo3som4w0jse / 297f489d-7a41-4098-883e-264b82e61d8e / Ежеквартальный отчет за квартал 2013 года. pdf "

Кто-нибудь может мне помочь, пожалуйста?

Спасибо

ОБНОВЛЕНИЕ

Я изменил перенаправление на aspx страницы, но все равно получена та же ошибка!

Может быть, я пропустил проблему тайм-аута?

Я увеличил тайм-аут выполнения в своем файле web.config, но безрезультатно.

<httpRuntime maxRequestLength="2000000000" executionTimeout="999999" />
...