刚刚下载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