剛剛下載IE9並拉起了一個web項目,我用一個IHttpHandler將JavaScript寫入網頁。在我編寫腳本之前,我通過確定會話cookie是否過期來測試該請求是否來自新會話。所以這裏是奇怪的部分,在運行IE調試器的時候,我可以看到兩個對這個腳本的請求,第一個被中止,然後請求被重試。IE9正在中止,然後重新請求腳本
在第一次請求時,所有事情都會像沒有錯,沒有任何例外。如果請求來自新會話,處理和確定將按預期執行,並相應地設置Cookie。然後無緣無故的請求被中止。
接下來,瀏覽器通過舊的過期cookie發送第二個請求,因此它被確定爲新會話並創建第二個會話。第二個請求由瀏覽器處理,沒有錯誤。
在兼容模式下,FF4,Chrome 10,Safari 5甚至IE9都不會出現這種情況。但是,得到這個,如果webapp由VS2010託管,它不會在標準IE9中執行。如果我在IIS中運行它,我的會話會翻倍。
是否有可能導致此問題的IIS設置?或者這是我需要弄清楚的IE9事情?
我使用Win7 Ultimate N x64作爲我的開發機器。
更新:另一個奇怪的是,如果我刷新頁面鏈接到IHttpHandler,最初的中止不會發生。
更新2:這是張貼在IE9調試器在所述第二請求:
This download occurred following a preparser restart (often due to either document mode switching or mismatched content encoding between a meta tag in the document and the BOM or a server header).
也許你可以通過調整這些各種HTTP緩存/期望設置(HTTP頭)來解決? – 2011-03-15 19:00:46
有我的問題是與此問題,請參閱: http://stackoverflow.com/questions/12783878/classic-asp-multiple-aspsessionid-in-cookies – swervedriver 2012-10-09 11:53:55