asp.net-mvc - LINQ to SQL 在压力测试时抛出异常

标签 asp.net-mvc performance linq-to-sql

我有这个运行 ASP .NET MVC 1.0 和 LINQ 2 SQL 的网络应用

我注意到 LINQ 2 SQL 在一定负载量下抛出异常(主要是指定的转换无效或序列包含多个元素)的一个非常奇怪的问题。

更大的问题是,我不是在谈论真正的重度/专业压力测试...基本上我所做的是打开 FireFox 和 Chrome,然后分别按住 F5 十秒钟(我称这个可怜的人压力测试)——瞧瞧; Web 应用程序在接下来的两到五分钟内随机抛出这些异常。如果我从 IIS7 重新启动应用程序(或者如果在 Visual Studio 下重新启动 WebDev),那么一切都会立即恢复正常。就像什么都没发生一样。

起初我怀疑我处理 DataContext 的方式,也许我应该在 Global.asx 的每个 Application_End 处处理它,但这并没有改变任何东西。

现在我有一个供所有请求使用的公共(public)静态 DataContext 对象。我不会处理它或重新创建它。这是正确的方法吗?我应该处理它吗?我究竟应该在什么时候处理它?<​​/p>

每个请求都会发生几件事 - 例如,在每个页面中,用户对象(针对当前用户)从数据库加载,“LastSeen”属性更新为 DateTime.Now。缓存其他内容(例如 Tag Cloud)。

知道为什么会这样吗?

最佳答案

DataContext 类不是线程安全的 - 您需要为每个操作创建一个新类。请参阅 Rick Strahl ( Linq to SQL DataContext Lifetime Management) 的这篇文章

关于asp.net-mvc - LINQ to SQL 在压力测试时抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1858671/

相关文章:

javascript - 在 javascript 中使用 instanceof 运算符是性能问题吗?

c# - Post 后 Asp.Net MVC EditorTemplate 模型丢失

asp.net-mvc - 如何通过 Ajax 调用的 Status 500 响应检查哪些字段出错?

asp.net-mvc - asp.net mvc 文本框日期格式

java - bitmap.compress(Bitmap.compressFormat.JPEG,100, baos) 给我 java.lang.OutOfMemoryError

asp.net - Autofac FactoryScoped Linq to SQL 数据上下文

asp.net - 由于查询字符串,ASP.NET MVC 中的重复内容

javascript - Angular 2 性能问题

c# - LinqToSql 查询中的条件快捷方式

c# - Linq to SQL 类 - 存储过程签名更改