Skip to Main Content

ODP.NET

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

EF Core 3.1 - Exception when trying to use TnsAdmin

TridusAug 26 2020 — edited Sep 18 2020

I'm getting the following error when trying to set a TnsAdmin path: OracleConfiguration.TnsAdmin = @"c:\oracle\client\19c\network\admin";

System.IO.FileNotFoundException

  HResult=0x80070002

  Message=Could not load file or assembly 'System.DirectoryServices.Protocols, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.

  Source=Oracle.ManagedDataAccess

  StackTrace:

   at OracleInternal.Network.LDAP..ctor(SqlNetOraConfig SNOConfig, Hashtable ObLdapHT)

   at OracleInternal.Network.AddressResolution.SetNewLDAP(Hashtable SQLNetHT, Hashtable LdapHT)

   at Oracle.ManagedDataAccess.Client.OracleConfiguration.set_TnsAdmin(String value)

   at GNB.ELG.WellVoucher.Website.External.Startup.ConfigureServices(IServiceCollection services) in C:\workarea\Startup.cs:line 32

   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)

   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

   at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.InvokeCore(Object instance, IServiceCollection services)

   at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass9_0.<Invoke>g__Startup|0(IServiceCollection serviceCollection)

   at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.Invoke(Object instance, IServiceCollection services)

   at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass8_0.<Build>b__0(IServiceCollection services)

   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.UseStartup(Type startupType, HostBuilderContext context, IServiceCollection services)

   at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass12_0.<UseStartup>b__0(HostBuilderContext context, IServiceCollection services)

   at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()

   at Microsoft.Extensions.Hosting.HostBuilder.Build()

   at GNB.ELG.WellVoucher.Website.External.Program.Main(String[] args) in C:\workarea\Program.cs:line 16

This is a brand new ASP.net Core 3.1 project that isn't really doing much of anything yet. Scaffolding the dbcontext from the database works fine, however trying to run the project results in this error.

I've got the same thing in an ASP.net Core 2 project and that works without issue pointing to the same path, so I'm not sure what changed. I don't have an ldap.ora defined at all, and sqlnet.ora is as follows:

SQLNET.AUTHENTICATION_SERVICES= (NTS)

NAMES.DIRECTORY_PATH= (TNSNAMES)

SQLNET.CRYPTO_SEED = "X"

NAMES.DEFAULT_DOMAIN = X

NAME.DEFAULT_ZONE = X

Thanks

Message was edited by: Tridus (removed beta tag as it is still an issue in production)

This post has been answered by Alex Keh-Oracle on Oct 22 2020
Jump to Answer

Comments

Tridus

As an update, this seems to happen if sqlnet.ora is found at all. I can remove everything from sqlnet.ora it and it still happens. If I rename sqlnet.ora to something else, the problem goes away, it picks up tnsnames.ora, and things work just fine.

Tridus

Just posting to add that it's still an issue with the 3.1 release version.

Alex Keh-Oracle

My dev team found the bug. It looks like a regression. We filed a bug (31867606) on your behalf and will work on a fix.

Tridus

Great, thank you!

KlausER

We are experiencing the same issue.

As a workaround I have renamed the sqlnet.ora. I am not sure if this causes any side effects.

We have already filed an issue on github: https://github.com/oracle/dotnet-db-samples/issues/99

Alex Keh-Oracle

This bug has been fixed and will be part of our next ODP.NET 19.10 release.

Alex Keh-Oracle

While you're waiting for a fix, there are a couple workarounds. You can either:

  1. Include the System.DirectoryServices.Protocols NuGet package or
  2. Don't set TnsAdmin via OracleConfiguration. Use other means to get the configuration info.
KlausER

Including the package System.DirectoryServices.Protocols solved the problem for us.

Many thanks for the quick response.

User_UU1WZ

It seems like the the core version is prone to this, too.
Are you aware of that ?

User_UU1WZ

Ok this was non-sense... I´m sorry...
The question to ask would be: What exactly do I need to get the fix ? Using Oracle.Enitity.Framework.Core 3.19.80 still results in that issue - I still need to include the protocols package...

Alex Keh-Oracle
Answer

Oracle uploaded a fix for this bug last night on NuGet Gallery. You can download it here: https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core/

Marked as Answer by Tridus · Oct 22 2020
Tridus

Works great, thanks Alex!

Tridus

If you're only pulling in Oracle.EntityFramework.Core, it's probably grabbing the minimum version of Oracle.ManagedDataAccess.Core that it requires, which is where the bug is present.
Go into NuGet and get Oracle.ManagedDataAccess.Core 2.19.91 specifically. That resolves the issue.

1 - 13

Post Details

Added on Aug 26 2020
13 comments
1,144 views