2016-03-16 33 views
0

我有讀取存儲BLOB數據的SQL表中的PDF並在瀏覽器向用戶提供它一個小的C#Web應用程序:C#的HttpResponse的BinaryWrite 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並且不返回任何內容。

本地主機請求報頭

請求POST/aff86f6621ed44b2910d856a19d0c8d1/browserLinkSignalR /中止?運輸= longPolling & connectionToken = AQAAANCMnd8BFdERjHoAwE%2FCl%2BsBAAAAdyAqdSoaME6giXw9SxAo3gAAAAACAAAAAAADZgAAwAAAABAAAABjumookEDHXn5Jz9JxDPjJAAAAAASAAACgAAAAEAAAAEzCAsIk2T%2Fm7voBY1V%2BeyooAAAAfF2pmaJ8A2WzK5JOx8QqKzYRYxFjyclkE3paKmoOPCXkIniBsjOhpxQAAAC8VGgsefZk5zRmUdh58GRu6xYAWQ%3D%3D & requestUrl = HTTP%3A%2F% 2Flocalhost%3A64169%2FDefault.aspx & browserName = Internet + Explorer & userAgent = Mozilla%2F5

接受純文本,/; q = 0.01

內容類型應用程序/ x-www-form-urlencoded;字符集= UTF-8

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

接受語言烯GB

接受編碼的gzip,放氣

用戶代理的Mozilla/5.0(Windows NT的6.1; WOW64;三叉戟/ 7.0; XS-cc6DYWKA8sA; rB12Ke; RV:11.0)等壁虎

主機本地主機:65187

的Content-Length 0

DNT 1個 連接保持 緩存控制無緩存

服務器請求頭

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

接受圖像/ JPEG,應用程序/ x-MS的應用程序,圖像/ GIF,應用/ XAML + xml的,圖像/ PJPEG,應用程序/ x-MS-XBAP,/

Accept-Language zh-CN

User-Agent Mozilla/4.0(compatible; MSIE 7.0; Windows NT 6.2; WOW64;三叉戟/ 6.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR 2.0.50727; .NET CLR 3.0。30729)

接受編碼gzip的,放氣

主機TESTSERVER

連接保持

每次我打電話相同的URL(以 「TESTSERVER」 的例外,而不是「 。本地主機」是有些配置我失蹤

+1

由於您的響應顯示內容長度爲0,因此GetData函數似乎沒有返回任何字節。請將調試點放在if(data!= null)並檢查數據值。 – Mitesh

回答

0

我認爲你需要添加這個頭?

fileName = "testFile"; 
    response.AddHeader("Content-Disposition", 
            string.Format("{0};FileName=\"{1}\"", 
               "attachment", 
               fileName)); 
+0

我試過之前,當谷歌搜索,並再次嘗試一次,以確保,但沒有喜悅 - 同樣的事情:( – Nick

+0

它有什麼參數在本地和服務器?Request.QueryString [「companyNo」]。ToString (),Request.QueryString [「invoiceNo」]。ToString() – raven

+0

你可以添加一行調試行來打印data.length嗎? – raven

0

發現了什麼問題 - 我添加了一個日誌來記錄應用程序鏈中的特定事件,按照Robeto & Mitesh的建議,它允許我看到檢索數據的函數崩潰並且沒有返回數據在測試箱上的信譽。對此進行排序,數據如預期般恢復。

感謝您的支持!

相關問題