1

Entity Framework を使用して SQL Server データベースに接続する Visual Studio 2010 Web プロジェクトがあります。VS2010 経由で 32 ビット アプリケーションを実行すると、Visual Studio 開発サーバーが使用されます。アプリケーションを実行した後、SQL Server で 'exec sp_who2' を時々使用して、サーバーからのデータベース接続数を確認しましたが、約 6 を超えることはありません。接続プールが使用されているため、これは予想される動作です。接続が再利用されます。

IIS 7.5 とまったく同じ 32 ビット ビルドを実行すると、しばらくすると接続プールの制限 100 に達し、動作が停止します。コードとデータベースは同一であるため、唯一の違いは、開発サーバーではなく IIS 7.5 で実行されていることです。接続文字列で接続プールを有効にしました。実際、接続文字列はどちらの場合も同じです。

接続プーリングが IIS で機能しない理由はありますか? はい、接続文字列内に pooling=true があります。はい、不要になったすべての接続を正しく閉じます。

更新: 最大プール サイズを 200 に設定すると、約 150 を超えないように見えるため、IIS シナリオが機能し続けることができるようです。 . どちらも、同じ接続文字列を使用して同じ方法で同じデータベースを使用しています。

4

0 に答える 0