2009-10-01 71 views
1

我非常需要這個幫助。我在IIS 5中有一個經典的ASP網站,我需要將pdf傳輸給用戶。我正在使用ADODB.Stream生成二進制數據塊,並使用response.BinaryWrite將其傳輸到客戶端。現在問題是IE中有一個已知的功能,默認情況下,SSL(https)網站將Response CacheControl標頭設置爲「no-cache」。因此,我得到的標準誤差:。通過HTTPS在IE 5.5/IIS 5.0上下載文件

「Internet Explorer無法從服務器名下載FILE.DOC

的Internet Explorer無法打開此Internet站點請求的站點是不可用或無法找到,請稍後再試。」

我已經在流式傳輸之前設置了Response.CacheControl =「private,must-revalidate,max-age = 3600」,但它仍然會給出錯誤。

注意:相同的代碼在firefox和netscape等所有其他瀏覽器中都能正常工作。我在firefox中使用LiveHttpHeaders來查看Response.CacheControl在firefox中自動正確設置。不幸的是,我不能在我的機器上安裝Fiddler,但我猜測問題是由於IIS默認標頭CacheControl =「無緩存」爲https

我沒有選中IE中的「不保存加密的頁面到磁盤」選項。

我需要解決的辦法,因爲期權擁有與現有技術:(互聯網將提供很快給用戶

回答

0

您也許能爲it has less than .5%下降的Internet Explorer 5.5的支持脫身它很低,他們在08年8月停止跟蹤它'

+0

但如何使它在ie 6/7/8中工作還是不會在更高版本中出現此問題? – NeoBieKid 2009-10-01 23:34:00

+0

嘗試IE 6並讓我們知道。 – 2009-10-02 13:45:05

+0

對不起,但沒有在測試電腦上安裝IE6(不在我的控制下)。然而,發現這個鏈接http://support.microsoft.com/kb/323308 它說,將無法與IE 6 SP 1,而是使用'HREF'它似乎需要'http'鏈接 - 因此無用..在經典的ASP的舊網站永遠不會提供https文件下載?不能 - 所以必須是一種方式 – NeoBieKid 2009-10-04 00:55:59

1

從這裏開始:http://blogs.msdn.com/ieinternals/archive/2009/10/02/Internet-Explorer-cannot-download-over-HTTPS-when-no-cache.aspx看到關於這個問題的更全面的討論。很可能你發送了一個或多個標頭禁止緩存。

該聲明...

there is a known feature in IE which sets the Response CacheControl header to "no-cache" by default for SSL (https) sites

...不正確。你的意思是說「IIS」嗎?哪個版本?我從來沒有聽說過這樣的功能。

我不知道你爲什麼不能在有問題的機器上使用Fiddler?

+0

嗨,埃裏克,thx爲非常有用的博客..是的,我的意思是'IIS'而不是'IE'.. thx用於發現d錯誤。IIS的版本是5.0。關於Fiddler,它要求的是我的電腦中缺少的.NET框架,我需要一段時間才能獲得批准安裝(我的公司的工作方式)。在此期間,我曾希望使用一些奧德工具,但沒有太多成功......將試圖讓小提琴手工作,因爲它似乎只是現在的希望! – NeoBieKid 2009-10-04 21:20:45

+0

btw,我的操作系統是Win 2000,以防萬一。 – NeoBieKid 2009-10-04 21:22:06

+0

如果你不能使用提琴手,那麼會有像proxomitron這樣的老的http嗅探器。 – Dzejms 2010-05-28 14:29:33