My application uses the SA ADO .NET data provider. I had upgraded my application to use SQ 12.0.1 EBF 3840 earlier in the week, but I had to roll it back to EBF 3817 on Friday. I've been getting the following error when my program starts up:
System.EntryPointNotFoundException: Unable to find an entry point named 'AsaConnection_CloseDataReaders' in DLL 'dbdata12.dll'.
I've done a search and I found this documentation page about dbdata12.dll. I've done a search of the C: drive on my machine and I can't find dbdata12.dll anywhere on it. Apparently, the program isn't unpacking it, either.
How do I fix this problem?
P.S. My program uses the .Net 4.0 framework and Entity Framework 4. Consequently, I'm using iAnywhere.Data.SQLAnywhere.V4.0.dll. One of the DLLs in the program also uses the ASP.NET Membership and Role providers in iAnywhere.Web.Security.dll, which is compiled using the .Net 2.0 framework. That means that the DLL has to include iAnywhere.Data.SQLAnywhere.dll. Could this be some kind of a conflict issue with the two different versions of the iAnywhere.Data.SQLAnywhere DLL?
With the help of another developer here, I’ve resolved this.
The problem is that the uninstaller does not remove all 3840 DLLs from the GAC. Specifically, I found copies of iAnywhere.Data.SQLAnywhere.V4.0.dll and policy.12.0.iAnywhere.Data.SQLAnywhere.V4.0.dll and policy.12.0.iAnywhere.Data.SQLAnywhere.V4.5.dll in the C:WindowsMicrosoft.NETassemblyGAC_MSIL folders for EBF 3840, even after I had uninstalled SQL Anywhere from my machine twice.
Once I deleted those DLLs, the problem stopped.
answered 11 Feb '13, 13:39
The provider unpacks the unmanaged code (dbdata12.dll) when you run your .NET application.
The SQL Anywhere uninstaller will not clear anything from the GAC because it does not know if you have applications built against a specific version of the provider. To arbitrarily remove versions of the provider could break your .NET applications.
You can use SetupVSPackage to uninstall the current 12.0.1 .NET provider build (/uninstall) or all of them (/uninstallall).
answered 11 Feb '13, 13:58
I suggest reinstalling SA from scratch. Most likely your attempt to "downgrade" SA resulted in missing files or/and version mismatch between components.
answered 11 Feb '13, 00:59