Could not load file or assembly 'Oracle.DataAccess,
Version=4.121.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of
its dependencies. The system cannot find the file specified.
It is problem due to application is not pointing to proper DDL
of oracle access and your GAC is having different version of Oracle.DataAccess.
To correct this you just need to put the below code into
web.config file.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"/>
<bindingRedirect oldVersion="4.121.1.0" newVersion="4.112.1.2"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
By doing this when application is looking to the version which
is not exist then it will redirect to the exist DLL version.
Generally by doing this you can work with the two same DDL with
dirffrent version and based on the requirement you can call the version of DLL
One condition for this issue arises when the when platform of the complied project has conflict with current platform setting in the iis. That like you said you are running on a 64bit machine and obviously your iis default setting will permit only 64bit applications on that. Since your ODP/application version is 32bit you need to override the default setting of iis to support 32bit version. Follow the below mentioned steps to enable 32bit environment on iis
ReplyDelete• Start iis manager by running “inetmgr” in run prompt
• Expand localhost and select “Application Pools” under that
• Select the “DefaultAppPool” under application pool
• Click on advanced setting under actions tab
• Set “Enable 32 Bit applications” to true in advanced settings
• Click ok and restart iss