如何解决相同代码在不同环境下的工作原理不同响应头没有Content-length
我正在处理一个旧的ASP.NET项目。 CSV文件是通过应用程序下载的。呼叫背面的其他服务后,可以准备并下载csv文件。 尽管此功能在开发环境中可以正常运行,但是在生产环境中下载的csv文件不完整。 工作代码是相同的。我添加了工作代码和响应。任何想法都会有很大帮助。谢谢
theme_grey
产品响应:
string url = "https://graph.someservice.net/service.php";
//Create a WebRequest to get the file
HttpWebRequest fileReq = (HttpWebRequest)HttpWebRequest.Create(url);
//Create a response for this request
HttpWebResponse fileResp = (HttpWebResponse)fileReq.GetResponse();
using (Stream stream = fileResp.GetResponseStream())
using (MemoryStream ms = new MemoryStream())
{
int count = 0;
do
{
byte[] buf = new byte[1024];
count = stream.Read(buf,1024);
ms.Write(buf,count);
} while (stream.CanRead && count > 0);
// prepare the response to the client. resp is the client Response
var resp = HttpContext.Current.Response;
resp.ContentType = "text/csv";
resp.AddHeader("Content-Disposition","attachment; filename=\"" + Request.QueryString["serviceName"] + ".csv\"");
resp.AddHeader("Content-Length",fileResp.ContentLength.ToString());
// Verify that the client is connected.
if (resp.IsClientConnected)
{
// write data out to the response's output stream
resp.OutputStream.Write(ms.GetBuffer(),(int)ms.Length);
resp.End();
}
}
dev响应:
cache-control: private
content-disposition: attachment; filename="test.csv"
content-type: text/csv
date: Tue,18 Aug 2020 19:05:50 GMT
server: nginx/1.10.3 (Ubuntu)
status: 200
x-aspnet-version: 4.0.30319
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。