ASP.NET MVC 응용 프로그램에서 사용자 지정 멤버 자격 공급자를 사용하고 있습니다. 우리는 간헐적 인 'System.InvalidOperationException -이 명령과 관련된 열린 DataReader가 먼저 닫혀 있어야합니다.' 클래스 문제 때문에 MARS를 사용하도록 결정했습니다. 키워드는 지원되지 않습니다 : 지원되지 않는 키워드 MultipleActiveResultSets
이
은<add name="CustomMembershipServices" connectionString="User ID=CUSTOM_USER;Password=pwd;Database=OUR_DB;Server=.\SQLEXPRESS;MultipleActiveResultSets=true;" providerName="System.Data.SqlClient" />
우리의 코드는 이제 경우 ArgumentException을 던졌습니다 ... 웹 설정에서 연결 문자열입니다 .. 다음 줄에 'multipleactiverecordsets'
protected void CreateAndOpenConnection()
{
// Exception thrown here...
_connection = new SqlConnection(_connectionString);
_connection.Open();
}
SQL2005 Express 및 SQL2008 Standard Edition을 대상으로 할 때도 동일한 예외가 발생합니다. 어떤 제안? 여기 AdaTheDev에 대한 응답으로
내가이 동일한 연결에서 여러 데이터 리더를 만드는 것이 어떤 이유를 볼 수있는 데이터 판독기를 사용하는 방법 ...
public bool CheckUserPassword(long userID, string password)
{
bool success = false;
if (!string.IsNullOrEmpty(password))
{
try
{
CreateAndOpenConnection();
using (SqlCommand cmd = CreateSqlCommandForStoredProcedure("CheckPassword"))
{
IPasswordUtility generator = new PasswordUtility();
cmd.Parameters.AddWithValue("UserID", userID);
cmd.Parameters.AddWithValue("Password", generator.HashPassword(password));
using (SqlDataReader reader = cmd.ExecuteReader())
{
success = reader.HasRows;
reader.Close();
}
}
}
finally
{
CloseConnection();
}
}
return success;
}
입니다.
흠, 내 대답을 업데이트 한 ... 정적 싱글로 내 수업의 치료는 ASP.NET 제공자 프레임 워크 때문이다. 해당 코드에서 아무 것도 잘못 볼 수 없습니다. – AdaTheDev