c#HttpResponse BinaryWrite PDF在本地工作,但不在服务器

时间:2016-03-16 14:17:43

标签: c# pdf httpresponse

我有一个小的C#Web应用程序,它读取存储为SQL表中BLOB数据的PDF,并在浏览器中将其提供给用户:

protected void Page_Load(object sender, EventArgs e)
    {

            byte[] data = GetData(Request.QueryString["companyNo"].ToString(), Request.QueryString["invoiceNo"].ToString());

            if (data != null)
            {
                Response.Buffer = true; 
                Response.ClearContent();
                Response.ClearHeaders();
                Response.ContentType = "application/pdf";
                Response.AddHeader("content-length", data.Length.ToString());
                Response.BinaryWrite(data);
                Response.End();
            }

这在本地很好用,但是当我将它上传到我的测试服务器时,我什么也得不到。

我已经捕获了流量并且可以在本地看到,当您调用URL时,它正在进行HTTP POST,但是在Web服务器上,它正在执行GET并且不返回任何内容。

localhost请求标头

请求POST /aff86f6621ed44b2910d856a19d0c8d1/browserLinkSignalR/abort?transport=longPolling&connectionToken=AQAAANCMnd8BFdERjHoAwE%2FCl%2BsBAAAAdyAqdSoaME6giXw9SxAo3gAAAAACAAAAAAADZgAAwAAAABAAAABjumookEDHXn5Jz9JxDPjJAAAAAASAAACgAAAAEAAAAEzCAsIk2T%2Fm7voBY1V%2BeyooAAAAfF2pmaJ8A2WzK5JOx8QqKzYRYxFjyclkE3paKmoOPCXkIniBsjOhpxQAAAC8VGgsefZk5zRmUdh58GRu6xYAWQ%3D%3D&requestUrl=http%3A%2F%2Flocalhost%3A64169%2FDefault.aspx&browserName=因特网+资源管理器&安培;的userAgent = Mozilla的%2F5

接受text / plain, / ; Q = 0.01

Content-Type application / x-www-form-urlencoded;字符集= UTF-8

Referer http://localhost:64169/Default.aspx

Accept-Language en-GB

接受编码gzip,deflate

用户代理Mozilla / 5.0(Windows NT 6.1; WOW64; Trident / 7.0; xs-cc6DYWKA8sA; rB12Ke; rv:11.0),如Gecko

主持localhost:65187

内容长度0

DNT 1 连接保持活跃 缓存控制无缓存

服务器请求标头

请求GET /MyApp/Default.aspx?companyNo=50222&invoiceNo=50497557 HTTP / 1.1

接受image / jpeg,application / x-ms-application,image / gif,application / xaml + xml,image / pjpeg,application / x-ms-xbap, /

Accept-Language en-GB

User-Agent Mozilla / 4.0(兼容; MSIE 7.0; Windows NT 6.2; WOW64; Trident / 6.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; NET CLR 3.0.30729)

接受编码gzip,deflate

主机测试服务器

Connection Keep-Alive

我每次都调用相同的URL(“TestServer”而不是“localhost”除外。是否有一些我缺少的配置?

2 个答案:

答案 0 :(得分:0)

我认为你需要添加这个标题:

Associate updateAssociate = new Associate();

updateAssociate.AssocID = txtAssocId.Text;
updateAssociate.FirstName = txtFname.Text;
updateAssociate.LastName = txtLname.Text;
updateAssociate.HireDate = Convert.ToDateTime(txtHireDate.Text);
updateAssociate.ContractEndDate = Convert.ToDateTime(txtContractEnd.Text);
updateAssociate.TerminationDate = Convert.ToDateTime(txtTerminationDate.Text);
updateAssociate.FullPartTimeID = cboFullPart.SelectedText;
updateAssociate.PrimaryRole = cboPRole.SelectedText;

答案 1 :(得分:0)

发现问题所在 - 我根据Robeto& amp;添加了一个日志来记录应用程序链中的特定事件。 Mitesh的建议让我看到检索数据的函数由于测试盒上缺少信用而没有丢失数据。对此进行排序,数据现在正如预期的那样回归。

感谢您的支持!