【发布时间】:2010-10-28 15:27:43
【问题描述】:
我间歇性地遇到此故障。
我发现这个链接很好地总结了我在 Google 上找到的内容: http://www.wacdesigns.com/2009/02/03/session-state-has-created-a-session-id-but-cannot-save-it-because-the-response-was-already-flushed-by-the-application/
基本上它说您可以尝试设置 Web 配置设置 DisplayWhenNewSession,或者尝试通过获取 Session_OnStart 中的 Session.SessionID 来激活会话状态。
但是有没有人:
a) 对此有解释
甚至更好,b) 有一个久经考验的修复方法
我意识到在执行任何会影响 http 响应标头的操作后,我无法刷新响应。如果我这样做,每次都会导致错误,但这是间歇性的。 SessionID 肯定应该由 ASP.NET 在页面响应开始时自动创建,在 ASPX 页面或 Page_Load(我的所有刷新都被调用的地方)中的任何内容之前。
更新: 经过反思,我意识到这是在将文件流式传输到浏览器时发生的。大多数浏览器实际上是搜索引擎机器人。我可以通过开始下载然后关闭浏览器来重新创建这个错误,所以大概浏览器在取消下载操作之前没有等待下载完成。我也在其他正常页面上看到过这种情况,但 99% 的时间是下载页面。
【问题讨论】:
-
我也有同样的问题。我看到它的唯一原因是当我在 Global.asax 中进行异常处理时。这是非常断断续续的。如果有人知道这个问题的答案,那就太好了!
-
链接现在断开了:-(
标签: asp.net session-state