04-03-2010 11:47 AM
I have a ASP.Net application that uses a connection to the SLX Provider. It works fine on my 64bit development box, but I seem to be having an issue with the SLX Provider (v7.5.2) on a Windows 2008 x64 server. When I try to establish a test connection using a UDL file to the provider, I get the following error...
Microsoft Data Link Error
Provider is no longer available. Ensure that the provider is installed properly.
I've tried scrubbing SLX off of the server and reinstalling, but same result. I've even tried manually registering SLXOLEDB.dll with no avail.
I have 32bit mode enabled in IIS7. When I try to connect to the page, it times out and I get the following message in the windows logs..
Faulting application w3wp.exe, version 7.0.6002.18005, time stamp 0x49e023cf, faulting module oledb32.dll, version 6.0.6001.18000
When I try it in 64 bit mode, I get the same error as the ULD test.
Something to note: the server is localy running SQL 2008, but the SLX database in on another server running SQL 2005.
Any thoughts on where to go from here?
Solved! Go to Solution.
04-05-2010 04:45 PM
It looks as though I have found a solution to the problem here.
The issue is due to the wrong flavor of OLEDB32.DLL and OLEDB32r.DLL being registered on the server. If the 64 bit versions are registered, they need to be unregistered, and then the 32 bit versions registered instead. To fix this, unregister the versions located in %Program Files%/Common Files/System/OLE DB. Then register the versions at the same path but in the %Program Files (x86)% directory.
Additionaly, if you are using the provider in a web application, you must use a domain user (not Network Service). WebDLL is always a safe bet
You must also enable 32 bit applications in IIS. You can do this by going to the advanced settings on the application pool used by the app.
Hope this saves someone some time!
09-16-2010 11:10 PM
Thanks for shareing your solution. I have the same problem with your post now. I know this is a post long time ago, but can you give me some suggestion about this, it takes me 3 days but no result for this problem.
I have a website running on 32-bits server which will connect with the SLX server, the SLX server is running on the other server which is 32-bits. It works fine until now.
Because I moved my website to the 64-bits 2008 R2 server. I always get the error when I browse my website on the new server, it said "No error message available, result code: E_FAIL(0x80004005)."
There are some of the details about the error:
[OleDbException (0x80004005): No error message available, result code: E_FAIL(0x80004005).]
System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection) +975157
System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) +86
System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +29
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +4865788
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
I installed the SalesLogix OLE DB Provider on my new server. and tried your method, unregistered the oledb32.dll under the %Program Files directory, and registered the oledb32.dll under the %Program Files (x86) directory, (I don't know why I cannot unregister the oledb32r.dll), enabled the 32-bits application on the AppPool.
but the error is still here.
Can you give me some suggestion? Thanks very much.
08-11-2011 03:59 PM
I know this is an old post but I am unable to unregister the oledb32r.dll using regsvr32 either the 32 bit or 64 bit version. I get this error:
The module "oledb32r.dll" was loaded but the entry-point DllUnregisterServer was not found.
Make sure that the "oledb32r.dll" is a valid DLL or OCX file and then try again.
I tried to stop all the SQL Server services (SLX has yet to be install on this system) but that did not help.
If you can provide any details here that would be great.
Thanks in advance.
08-16-2011 01:02 PM
The OLEDB32R.dll throws that error when you try to register, but it hasn't caused problems for me on 2008 R2 64-bit. You can test the SLXOLEDB provider by opening a test UDL file (create a blank text file on C: and give it the .udl extension) with the OLEDB link manager in 32-bit mode:
C:\Windows\syswow64\rundll32.exe "C:\Program Files (x86)\Common Files\System\Ole DB\oledb32.dll",OpenDSLFile C:\test.udl
You should be able to access the link successfully from the client machine. If this fails, your App Server connection may be to blame. Did you set Persist Security Info to true, and clear out Integrated Security field, the under the All tab in the connection manager? Is the correct SQL Native Client version installed on all clients?
Firewall settings are another possibility - all client machines need 1706 (default SLX) and 1433 (default SQL) open in order to access the App server and the SQL server directly. The connection string is retrieved from the App server (DES encrypted) so that the SLXOLEDB provider can access SQL directly.