bestsource

SQL Azure + 'MultipleActiveResultSets=True'를 설정한 후에도 '이 명령과 연결된 열려 있는 DataReader가 이미 있습니다.'라는 오류가 표시됨

bestsource 2023. 4. 24. 23:41
반응형

SQL Azure + 'MultipleActiveResultSets=True'를 설정한 후에도 '이 명령과 연결된 열려 있는 DataReader가 이미 있습니다.'라는 오류가 표시됨

클라우드 상에 구축된 애플리케이션 버전과 관련하여 몇 가지 문제가 있습니다.

저희 앱은 ASP입니다.NET MVC 3 프로젝트(ADO 포함).NET 엔티티 프레임워크

msdn 블로그에 따르면 데이터베이스 연결 문자열에 'MultipleActiveResultSets=True' 매개 변수를 추가해야 합니다(SQL azure를 사용하는 엔티티 프레임워크의 경우).

응용 프로그램에서 데이터베이스 쿼리를 실행하는 동안 다음과 같은 예외가 발생합니다. "이 명령과 관련된 열려 있는 DataReader가 있습니다. 먼저 닫아야 합니다." 이것은 'MultipleActiveResultSets=True' 속성과 매우 관련이 있습니다.

로컬 환경에서 어플리케이션은 로컬로 전개된 데이터베이스와 SQL azure 데이터베이스(로컬 환경)를 사용하여 정상적으로 동작합니다.

그러나 클라우드 애플리케이션을 도입하면 위에서 언급한 오류가 발생합니다.'MultipleActiveResultSets=True' 속성이 연결 문자열에서 읽히지 않는 것 같습니다.

사용하고 있는 접속 문자열은 다음과 같습니다.

    <connectionStrings>
        <add name="#DBInstanceName#" connectionString="Data Source=tcp:#server#.database.windows.net,1433;Initial Catalog=#DBName#;User ID=”UserName#@#server#;Password=”#password#”;MultipleActiveResultSets=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>

로컬로 전개된 어플리케이션에서 위의 접속 문자열을 사용하여 SQL Azure 데이터베이스에 예외 없이 접속할 수 있습니다.그러나 동일한 연결 문자열을 사용하여 클라우드에 동일한 애플리케이션을 배포하면 위에서 언급한 오류가 발생합니다.

같은 것을 고칠 수 있도록 도와주실 수 있나요?

저도 같은 문제가 생겼어요.Web.config 연결에서 "Multiple Active Result Sets=True" 설정을 시도했지만 결과가 없습니다.마지막으로 웹 사이트의 Azure 대시보드에서 직접 연결 문자열을 수동으로 편집하여 문제를 해결했습니다. "Configure" 탭에는 "Configure" 문자열 설정이 있으며 "MultipleActiveResultSets=True;" 문자열을 수동으로 추가해야 합니다.그 후, 드디어 MARS가 동작했습니다.

Visual Studio는 MultipleActiveResultSets=true입니다.Web.config" 입니다.여기에 이미지 설명 입력

connectionsstring에서 multipleresultsets=true를 설정하고 다시 시작해야 합니다.

삭제된 답변

편집: 이것은 논의되고 있습니다!아래 주석 확인...조사할 시간이 없어서...

이미 켜져 있는 것 같아요.

스폿온 소스를 찾을 수 없었지만 Faisal Mohamood(Program Manager, Entity Framework)는 2010년에 다음과 같이 말했습니다.「물론, 제품의 다음 업데이트를 릴리스 할 때, SQL Azure 베이스의 앱에 대해서 MARS가 자동적으로 온이 되어 있는 것은 말할 필요도 없습니다.」검색처: http://blogs.msdn.com/b/adonet/archive/2010/06/09/remember-to-re-enable-mars-in-your-sql-azure-based-ef-apps.aspx

우리는 새로운 Azure 포털에 접속하고 있는데 이 문제도 있었습니다.MARS는 모든 로컬 개발 환경에서 작동하지만 Azure에서도 동일한 불쾌한 예외가 발생했습니다.Azure에 전개된 물리적인 web.config 파일의 접속 문자열이 포함되어 있는 것을 확인했습니다.MultipleActiveResultSets=true;근데 이 어플의 영광은 아닌 것 같아요.결국 앱 서비스 인스턴스 > 설정 > 데이터 연결로 이동하여 web.config에서 해당 이름과 동일한 이름의 데이터 연결을 삭제했습니다.아마 Azure가 저장한 것이 전개된 web.config의 것을 능가하는 것 같습니다.

코드에서 MultipleActiveResultSets를 할당해 보십시오.안 읽히거나 안 읽히나요?

SqlConnectionStringBuilder.Multiple Active Results 세트

같은 문제가 있습니다만, Publish Assistant 접속 문자열의 MultipleActiveResultSets=True를 irium으로 해결했습니다.

언급URL : https://stackoverflow.com/questions/12690453/sql-azure-getting-an-error-there-is-already-an-open-datareader-associated-wit

반응형