相同代码在不同环境下的工作原理不同响应头没有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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...