我间歇性地遇到此故障。
我发现此链接可以很好地概括我在Google上可以找到的内容:http : //www.wacdesigns.com/2009/02/03/session-state-has-created-a-session-id-but-无法保存它,因为该响应已被应用程序刷新/
基本上,它说您可以尝试设置Web配置设置DisplayWhenNewSession,或者通过在Session_OnStart中获取Session.SessionID来尝试激活会话状态。
但是有人吗:
a)对此有一个解释
甚至更好,b)具有经过测试的修复
我意识到在执行可能会影响http响应标头的所有操作后,我无法刷新响应。如果我这样做,每次都会导致错误,但这是间歇性的。当然,SessionID应该由ASP.NET在页面响应开始时自动创建,而不是在ASPX页面或Page_Load(调用我的所有刷新的位置)之前创建。
更新:经过 反思,我意识到将文件流式传输到浏览器时会发生这种情况。大多数浏览器实际上是搜索引擎机器人。我可以通过开始下载然后关闭浏览器来重新创建此错误,因此大概是浏览器在取消下载操作之前不会等待下载完成。我在其他普通页面上也看到了这一点,但有99%的时间是下载页面。