sourcecode

.NET Core 5.0의 ODP.Net 드라이버 던지기 예외

copyscript 2023. 7. 18. 21:54
반응형

.NET Core 5.0의 ODP.Net 드라이버 던지기 예외

데이터베이스 응용 프로그램을 .NET Core 3.1에서 .NET Core 5.0으로 포팅하려고 합니다.

다음 코드를 실행할 때,

        public async Task<List<T>> LoadDataFromSQL<T, U>(string sql, U parameters, string connectionStringName)
        {
            using (IDbConnection connection = new OracleConnection(await GetConnectionString()))
            {
                var rows = await connection.QueryAsync<T>(sql,
                                                          parameters,
                                                          commandType: CommandType.Text);
                return rows.ToList();
            }
        } 

다음과 같은 예외가 있습니다.

"시스템.반사.대상 호출예외:호출 대상이 예외를 던졌습니다.\r\n ---> 시스템.유형 초기화예외:'Oracle Internal'의 이니셜라이저 형식입니다.서비스 개체입니다.OracleConnectionImple'에서 예외를 발생시켰습니다.\r\n ---> 시스템.유형 초기화예외:'Oracle'의 이니셜라이저입니다.관리 데이터 액세스.Types.TimeStamp'에서 예외를 발생시켰습니다.\r\n ---> 시스템.지원되지 않음예외:BinaryFormatter 직렬화 및 역직렬화는 이 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 https://aka.ms/binaryformatter 을 참조하십시오.\r\n 오라클 내부에 있습니다.Common.Oracle TimeZone.Oracle에서 인스턴스()\r\n를 가져옵니다.관리 데이터 액세스.Types.TimeStamp..cctor()\r\n --- Oracle에서 내부 예외 스택 추적의 끝 ---\r\n.관리 데이터 액세스.유형.타임 스탬프.가장 최근의 이니셜Oracle Internal에서 TZ 버전()\r\n.서비스 개체입니다.OracleConnectionImplictor()\r\n --- OracleInternal에서 내부 예외 스택 추적의 끝 ---\r\n.서비스 개체입니다.OracleConnectionImpl..ctor()\r\n --- 내부 예외 스택 추적의 끝 ---\r\n"

제 애플리케이션에서 이 문제를 해결할 수 있습니까?

저는 최신 버전의 오라클을 사용하고 있습니다.관리 데이터 액세스.Core 2.19.91, 2020년 10월 22일 출시또한, 저는 Dapper 2.0.35를 사용하고 있습니다.

Oracle에서 이 문제에 대한 수정 작업을 진행하고 있으며 곧 제공될 예정입니다.

한편, 이 문제에 부딪힐 경우 해결 방법이 있습니다.

프로젝트 파일에서 XML 문을 EnableUnsafeBinaryFormatterSerialization에 추가할 수 있습니다.

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <EnableUnsafeBinaryFormatterSerialization>true</EnableUnsafeBinaryFormatterSerialization>
  </PropertyGroup>

Oracle을 설치하는 중입니다.관리 데이터 액세스.Core 3.21은 안전하지 않은 이진 직렬화를 수행할 필요가 없도록 이 문제를 완전히 해결합니다.

언급URL : https://stackoverflow.com/questions/64790197/odp-net-driver-throwing-exception-on-net-core-5-0

반응형