1

最近、ASP.Net プロジェクトの静的クラスに Linq to SQL を実装しました。これは、サイトの負荷に関する情報を取得するためのユーティリティ クラスです。静的linqtosqlデータコンテキストを使用したとき、ライブ環境でのみ上記のエラーが発生しましたが、UATまたはQAサイトではその問題は発生しませんでした. (これは、この問題が負荷が大きい場合にのみ発生することを意味します)。

だから私はぐるぐる回って、この記事hereを見つけました。だから私がしたことは、ページレベルのデータコンテキスト変数を作成し、それらを呼び出すたびにそれらを静的メソッドに渡したことです。私がしたことは正しかったですか?それでこの問題は解決しますか?/

4

1 に答える 1

2

ASP.Net では、各要求は個別のスレッドです。したがって、静的リソースを使用している場合は、同時実行を処理する必要があります。あなたの場合、2 つのデータリーダーが同じ接続を使用しているようです。クラスは静的であるため、サーバーの負荷が高い場合、2 つのリクエストが同じデータコンテキストを同時に使用する可能性があります。

本当に静的リソースが必要な場合は、lock ステートメントを使用して、同時に 1 つのリクエストのみがリソースにアクセスするようにする必要があります。

于 2010-08-14T10:00:27.130 に答える