2009-05-23 62 views
1

我有一個自定義的HttpHandler調用Web服務來獲取文件。在測試中,我調用生產Web服務,HttpHandler正確返回文件。當我在服務器上的生產環境中測試它時,它也可以工作。但是,如果我從遠程客戶端(不在服務器上)調用HttpHandler,則文件名和大小設置正確,但下載的文件字節數爲零。有任何想法嗎?HttpHandler返回零長度字節[]

+1

發佈代碼,並檢查Wireshark發生了什麼 – Andomar 2009-05-23 19:02:26

回答

1

所以這裏的交易。我創建了一個multipart range handler(您需要實施RFC以將內容流式傳輸到iPhone或Adobe Reader)。該規範假定當客戶端請求一個字節範圍而不是整個數組時,啓用處理文件。當我的處理程序出現問題時,客戶需要整個BLOB:

if (context.Request.Headers[HEADER_RANGE] != null) 
{ 
    ... 
} 
else 
{ 
    context.Response.ContentType = contentItem.MimeType; 
    addHeader(context.Response, HEADER_CONTENT_DISPOSITION, "attachment; filename=\"" + contentItem.Filename + "\""); 
    addHeader(context.Response, HEADER_CONTENT_LENGTH, contentItem.FileBytes.Length.ToString()); 
    context.Response.OutputStream.Write(contentItem.FileBytes, 0, contentItem.FileBytes.Length); 
} 

注意什麼缺少?

我忘了,包括:

context.Response.Flush(); 

添加該行代碼後,就開始在生產環境中工作。然而,我發現這很奇怪,這是在服務器上而不是在任何客戶端上。任何人都可以闡明爲什麼會這樣?