我有 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
当我第二次尝试下载时,相同的标题不存在。