2011-08-04 12 views
1

ロックに関する懸念から、すべてのasp.netセッションが接続プールで独自の接続を取得することを保証する必要があります。セッションごとに1つの接続。他の接続では共有されません。ASP.NETでユーザーセッションごとに一意の(プールされていない)データベース接続を保証する方法はいくつかあります。

アイデア?

正しい答えはありません。ちょうどアイデアがなく、いくつかの提案が必要です。

ありがとうございます。

+1

"セッションごとに"本当に必要なのでしょうか?または、特定のページリクエストを通じて同じ接続を維持するだけで十分ですが、後続のリクエストで必ずしも同じ接続である必要はありませんか?ユーザーセッション全体で単一の接続を維持するのは危険です。つまり、セッションのタイムアウトに応じて非常に長い時間が続くオープンな接続が(ユーザー数に応じて)たくさんあります。 – mikemanne

答えて

2

これがSQL Serverの場合、データベース接続文字列にPooling = 'false'を追加すると、接続はプールされません。

一般的な接続では、プーリングはアプリケーションに適しています。開いて、何かをして、プールを閉じてプールに戻します。私は接続が適切に処理されていないために問題が発生した場合があります。

すべての接続が使用ブロックにあることを確認してください(自動的に破棄されます)。またはそれらがtry catchにある場合は、最後にdisposeが呼び出されていることを確認してください。

プール以外の場合は、プールを使用しない接続文字列を変更します。

関連する問題