How to get NORMS running locally if there are Oracle issues
Instructions
Verify that the “version” attribute for oracle.manageddataaccess.client in the .NET machine config files matches the NORMS web.config for Oracle Managed Data:
Machine.config file in C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config,
Machine.config file in C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config, (may or may not need updates.
Sections where the version is currently found include:
<configuration> section
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.18.3, Cul
<DbProviderFactories> section
<add name="http://ODP.NET , Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.18.3,
Also, Search for and comment out, if it isn’t already commented out:
<!--<oracle.manageddataaccess.client>
<version number="4.121.2.0">
<settings>
<setting name="TNS_ADMIN" value="c:\oracle\ora12c\network\admin"/>
</settings>
</version>
</oracle.manageddataaccess.client>-->
Reference: Oracle ODP.NET error
Check that the references in NORMS are correct.
Errors can occur when running NORMS if ENTITY Framework.functions has to be upgraded in NuGet.
Note: If you have an error to debug the app, verify the configurations below
1) Provider
<configuration>
<providers>
<provider invariantName="Oracle.ManagedDataAccess.Client" type="Oracle.ManagedDataAccess.EntityFramework.EFOracleProviderServices, Oracle.ManagedDataAccess.EntityFramework, Version=6.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</providers>
</configuration>
2) Configuration Section Handler
The following entry is added to the app/web.config to enable applications to add an <oracle.manageddataaccess.client>
section for ODP.NET, Managed Driver-specific configuration:
<configuration>
<configSections>
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</configSections>
</configuration>
3) DbProviderFactories
The following entry is added for applications that use DbProviderFactories and DbProviderFactory classes. Also, any
DbProviderFactories entry for "Oracle.ManagedDataAccess.Client" in the machine.config will be ignored with the following
entry:
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="Oracle.ManagedDataAccess.Client" />
<add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.21.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
</DbProviderFactories>
</system.data>
</configuration>
4) Dependent Assembly
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<publisherPolicy apply="no" />
<assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
<bindingRedirect oldVersion="4.122.0.0 - 4.65535.65535.65535" newVersion="4.122.21.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
5) Data Sources
<configuration>
<oracle.manageddataaccess.client>
<version number="*">
<dataSources>
<dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) " />
</dataSources>
</version>
</oracle.manageddataaccess.client>
</configuration>
Check the machine.config file(s) in your Entity Framework folder(s) (C:\Windows\Microsoft.NET\Framework\VersionNumber(s)). If it contains the below code, comment it out, and try running NORMS again.
<section name="oracle.manageddataaccess.client" type="OracleInternal.Common.ODPMSectionHandler, Oracle.ManagedDataAccess, Version=4.122.18.3, Culture=neutral, PublicKeyToken=89b483f429c47342"/> <oracle.manageddataaccess.client> <version number="*"> <settings> <setting name="NAMES.DIRECTORY_PATH" value="TNSNAMES"/> </settings><dataSources> <dataSource alias="SampleDataSource" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL))) "/> </dataSources> </version> </oracle.manageddataaccess.client>
If after doing these fixes, NORMS runs but has nothing appear on the actual webpage, please see this article: How to Fix NORMS When It Displays Nothing When Running Locally