从 Web 应用程序下载文件时出现问题 - ASP.NET Web 表单应用程序

问题描述 投票:0回答:2

目前我在 ASP.NET Web 表单应用程序上遇到问题,有些人无法获取所请求的完全下载的文件。

文件有时会完全下载,但有时会在一定字节数后保持挂起状态,最终浏览器似乎会提示网络错误。我想再次强调,有时它很好,有时下载只是卡住并且没有响应。我尝试过尝试/捕获,但没有返回任何内容。

我无法在测试网络服务器上复制此问题,它只发生在生产环境中,这使得这个问题更难发现。

似乎没有任何内容通过刷新,发生这种情况时正在执行语句。如果没有发生则一切正常。

public void DownloadFile(byte[] fileImage, string fileName )
{
    if (fileImage == null) return;
    string fileExt = fileName.Substring(fileName.LastIndexOf('.') + 1);
    string disposition = string.Format("attachment;filename=\"{0}\"", fileName);

    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = GetContentType(fileExt);
    Response.ContentEncoding = System.Text.Encoding.Default;   
    Response.AddHeader("content-disposition", disposition);
    Response.BinaryWrite(fileImage);
    Response.Flush();
    Response.End();
}
 
c# asp.net file webforms
2个回答
1
投票

所以我发现问题是由负载均衡器而不是代码引起的。负载均衡器处理 SSL 的方式似乎是导致此问题的关键因素。目前的解决方案是将 SSL 处理卸载到 Web 服务器。


0
投票

这可能来自网络,尝试直接从服务器打开应用程序,看看是否再次发生。您还可以检查发送到服务器的请求的日志,并查看它们交付后获得的 http 代码。 这些是我的经验,希望有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.