Skip to content

Oracle.ManagedDataAccess.Core 3.21.100 references broken System.Directory.Protocols version #285

@mus65

Description

@mus65

After upgrading from 3.21.90 to 3.21.100 we got the following runtime error in our application when trying to connect to LDAP.

 ---> System.IO.FileLoadException: Could not load file or assembly 'System.DirectoryServices.Protocols, Version=6.0.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (0x80131040)
File name: 'System.DirectoryServices.Protocols, Version=6.0.0.1, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
   at OracleInternal.ConnectionPool.PoolManager`3.CreateNewPR(Int32 reqCount, Boolean bForPoolPopulation, ConnectionString csWithDiffOrNewPwd, OracleConnection connRefForCriteria, Boolean bMaxSemObtained, Boolean bIgnoreIdleSem, Boolean& bIdleSemObtainedWhileCreatingPR, String instanceName, List`1 switchFailedInstNames)
   at OracleInternal.ConnectionPool.OraclePoolManager.CreateNewPR(Int32 reqCount, Boolean bForPoolPopulation, ConnectionString csWithDiffOrNewPwd, OracleConnection connRefForCriteria, Boolean bMaxSemObtained, Boolean bIgnoreIdleSem, Boolean& bIdleSemObtainedWhileCreatingPR, String instanceName, List`1 switchFailedInstNames)
   at OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, OracleConnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch)
   at OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword, Boolean bGetForApp, OracleConnection connRefForCriteria, String affinityInstanceName, Boolean bForceMatch)
   at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword, OracleConnection connRefForCriteria)

This took quite some time to figure out, the actual issue is dotnet/runtime#84031 . I'm not going into the technical details here, but the point is that System.DirectoryServices.Protocols 6.0.1 is broken in a way that makes applications referencing System.DirectoryServices.Protocols 7.0.0 fail at runtime with this exception.

While the actual issue is in System.DirectoryServices.Protocols 6.0.1, Microsoft obviously can't patch an already published Package. We currently downgraded to 3.21.90 which references the unaffected System.DirectoryServices.Protocols 5.0.1 .

It would be great if Oracle could fix this by either going back to 5.0.1 or requiring 7.0.0 . Until then, we are stuck with Oracle 3.21.90 .

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions