Connection クラスのクラス メソッドから接続を返しています。別のクラスでは、接続クラスをインスタンス化して接続を開きます。接続も閉じましたが、接続リークがあるようです。どうすれば修正できるか考えてみてください。以下の私のコード
public class Connection
{
private SqlConnection _oConn;
public SqlConnection GetConnection
{
get
{
if (_oConn == null)
{
string sConnString = ConfigurationManager.ConnectionStrings["bplocator_database_connection"].ConnectionString;
_oConn = new SqlConnection(sConnString);
}
return _oConn;
}
}
}
別のクラス ファイルで、この接続クラスを呼び出します
private BPAdmin.data.Connection oConn
{
get
{
if (_oConn == null)
{
_oConn = new BPAdmin.data.Connection();
}
return _oConn;
}
}
public void getData
{
try
{
oConn.GetConnection.Open();
//Do something
}
catch
{
oConn.GetConnection.Close();
}
finally
{
oConn.GetConnection.Close();
}
}
これにより接続リークが発生し、アプリケーションプールが最大に達したことがわかりました。何が問題なのか、どうすれば修正できるのか。助けてください!。