【发布时间】:2014-06-29 01:33:04
【问题描述】:
这是我的困境。我在 MVC 应用程序中有一个页面,该页面使用 ajax 调用通过部分视图显示搜索结果列表。该模型是一个List<List<string>>,代表一个动态数据集,即用户选择他们想要返回的列以及返回的顺序。视图所做的只是一个嵌套循环,用于构建结果表。
其中一个潜在的返回字段是条形码图像,该图像由另一个返回FileContentResult 的方法呈现。通常这很好用,它既流畅又高效,以至于我根本没有注意到所有正在渲染和下载的条形码,即使在数百行长的数据集中也是如此。
当我使用HttpContext.Current.Session 设置会话变量时出现问题,即使是像Session["thingy"] = "thingy"; 这样简单的东西。发生这种情况时,条形码图像会严重影响性能。需要一秒钟才能完全加载的结果集现在在点击搜索按钮后会出现长达 10 秒的图像“弹出”问题。有几次图片加载失败,出现“服务器现在太忙”的错误。
溢出地的任何人都知道可能导致这种行为的原因吗?我找到了一个笨拙的解决方法,但它涉及不必要的 ajax 调用和额外的数据库访问。
【问题讨论】:
-
锁定对 SqlSessionState 的访问?
-
没有。对不起,我应该更清楚。我正在使用 HttpContext.Current.Session 对象。我会更新的。
-
Alexei 询问您的会话状态是存储在 Sql Server 上还是进程内?
-
无论您如何访问
Session,重要的是您使用SqlSession 还是内存中的站点。 Sql 1 将锁定请求,直到前一个请求完成并超时。看看这个 - stackoverflow.com/questions/1464203/… -
知道了。我正在使用内存。我的工作场所还没有设置 SQL 会话。
标签: c# ajax asp.net-mvc asp.net-mvc-4 session