IE8无法从WCF下载文件 - 无法识别文件名

时间:2013-05-09 08:56:24

标签: asp.net wcf internet-explorer-8 download

我有WCF REST服务,其目的是根据请求提供文件。

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的地址栏中,则在第一次尝试时无法下载,但在第二次尝试时就会直接下载。如果我看到Fiddler中发生了什么,我发现第一次尝试我看到以下标题:

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

当我第二次尝试下载时,相同的标题不存在。

1 个答案:

答案 0 :(得分:0)

所以事实证明我已经将缓存控制设置为无缓存,如果我从我的WCF代码中注释掉以下过程,IE8处理我的文件就好了。怪异。

  

// HttpContext.Current.Response.AppendHeader( “缓存控制”,   “无缓存”); //HttpContext.Current.Response.CacheControl =“no-cache”;   //HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);