最近我在我的 ASP.Net 项目中的一个静态类中实现了 Linq to SQL,这是一个实用程序类,用于获取有关站点负载的一些信息。当我使用静态 linqtosql 数据上下文时,我只在实时环境中遇到上述错误,但在 UAT 或 QA 站点上从未遇到过该问题。(这意味着此问题仅在负载很大时才会发生)。
所以我用谷歌搜索并在这里找到了这篇文章。所以我所做的是我制作了我的页面级数据上下文变量,并在每次调用它们时将它们传递给静态方法。我所做的是正确的,这会解决这个问题吗?/
最近我在我的 ASP.Net 项目中的一个静态类中实现了 Linq to SQL,这是一个实用程序类,用于获取有关站点负载的一些信息。当我使用静态 linqtosql 数据上下文时,我只在实时环境中遇到上述错误,但在 UAT 或 QA 站点上从未遇到过该问题。(这意味着此问题仅在负载很大时才会发生)。
所以我用谷歌搜索并在这里找到了这篇文章。所以我所做的是我制作了我的页面级数据上下文变量,并在每次调用它们时将它们传递给静态方法。我所做的是正确的,这会解决这个问题吗?/
在 ASP.Net 中,每个请求都是一个单独的线程。因此,如果您使用的是静态资源,则必须处理并发性。在您的情况下,似乎两个数据读取器正在使用相同的连接。由于您的类是静态的,因此当服务器负载过重时,可能会发生两个请求同时使用相同的数据上下文。
如果你真的需要一个静态资源,你应该使用lock语句来确保同时只有一个请求访问该资源。