2013-05-09 160 views
1

我有WCF REST服務,其目的是根據請求提供文件。IE8無法從WCF下載文件 - 無法識別文件名

WebOperationContext.Current.OutgoingResponse.Headers.Clear(); 
WebOperationContext.Current.OutgoingResponse.Headers.Add("Content-Disposition", "attachment;filename=" + fileNameWithExtension); 
WebOperationContext.Current.OutgoingResponse.ContentType = contentType; 
return new MemoryStream(file.Data); 

下載此工程適用於所有瀏覽器,但IE8 - 每當我點擊下載鏈接,它會打開一個新標籤並關閉它自己。我設法發現,雖然Chrome能夠正確識別文件名,但IE8沒有看到任何文件名 - 就像它忽略了文件頭中的文件名一樣。有沒有人有任何線索如何解決這個問題?

編輯*我發現如果我從鏈接中提取URL並手動將其放入IE8的地址欄中,它將無法在第一次嘗試時下載,而是在第二次嘗試時立即前進。如果我看到正在發生的事情提琴手我發現,第一次嘗試我看到下面的標題:

Set-Cookie: ASP.NET_SessionId=rhyk5nxw3fmrkjonsjknntuw; path=/; HttpOnly 

相同的標題是不存在的,當我嘗試下載它的第二次。

回答

0

事實證明,我已經設置緩存控制爲無緩存,如果我從我的WCF代碼註釋掉以下過程,IE8處理我的文件就好了。奇怪的。

//HttpContext.Current.Response.AppendHeader("Cache-Control「, 」no-cache「); //HttpContext.Current.Response.CacheControl =「no-cache」; //HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);