2

最近我使用实体框架 Razor 编写了一个 ASP.NET MVC 4 Web 应用程序 - 相当大(大约 90 个实体,许多表单等)。在我的开发环境中,一切都运行良好且速度非常快。

在服务器上部署应用程序以及更多并发用户开始出现在网站上时,问题就开始了。许多用户正在经历非常缓慢的加载。在某些情况下,看起来像是一个用户阻止另一个用户直到他的请求完成(登录、退出等)。我读过关于不在 ASP.NET 中使用会话的文章,但我也读到每个用户都有自己的会话,它是安全的,因此它们之间的会话不应相互影响。在大多数情况下,实体框架查询只是读取数据,因此数据库锁不应该经常出现,但我真的不知道。但是,当服务器上同时有大约 20 人时,页面变得非常慢。

我需要加载/存储用户配置文件——列宽、设置、排序等——并在视图和控制器中使用它,这就是我使用会话的原因。会话锁应该只阻止用户自己的并发请求直到完成,而不是另一个,对吗?我还使用重复的 ajax 请求来显示与时间相关的信息。当网络上有更多人时,我的应用程序中的某些内容会导致严重的挂起。当我一个人上网时,一切都运行得很快。我对此很陌生,不知道从哪里开始挖掘。

是否有任何避免此类问题的最佳实践,或者任何关于哪种技术会导致此类问题的想法?

4

0 回答 0