从 Web 应用程序下载文件问题 - ASP.NET Web 表单应用程序
Issue downloading Files from Web App - ASP.NET Web Form Application
目前我在 ASP.NET Web 表单应用程序上遇到问题,有些人无法获得所请求的完整下载文件。
文件有时会完全下载,但有时它会在一定字节数后保持挂起状态,最后浏览器似乎提示网络错误。我想再次强调有时它很好,其他时候下载只是卡住而没有响应。我试过输入 try/catch 但没有返回任何内容。
我无法在测试网络服务器上复制它,它只发生在生产环境中,这使得这个问题更难找到。
似乎没有通过刷新,发生这种情况时正在执行语句。如果没有出现则一切正常。
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();
}
所以我发现问题是由负载平衡器而不是代码引起的。负载均衡器处理 SSL 的方式似乎是造成这种情况的关键。目前的解决方案是将 SSL 处理卸载到 Web 服务器。
目前我在 ASP.NET Web 表单应用程序上遇到问题,有些人无法获得所请求的完整下载文件。
文件有时会完全下载,但有时它会在一定字节数后保持挂起状态,最后浏览器似乎提示网络错误。我想再次强调有时它很好,其他时候下载只是卡住而没有响应。我试过输入 try/catch 但没有返回任何内容。
我无法在测试网络服务器上复制它,它只发生在生产环境中,这使得这个问题更难找到。
似乎没有通过刷新,发生这种情况时正在执行语句。如果没有出现则一切正常。
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();
}
所以我发现问题是由负载平衡器而不是代码引起的。负载均衡器处理 SSL 的方式似乎是造成这种情况的关键。目前的解决方案是将 SSL 处理卸载到 Web 服务器。