Maarten Schuurman

I found that after installing commerce server 2007 on a 64-bit windows 2003 platform the CSOLEDBLookup.dll is not registered. The CSOLEDBProvider.dll registrations are there and they do make reference to registry key [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{8A91B217-A901-11D2-B3CF-00C04F72DBA8}] but the key in question isn't there. I fact the 64-bit version of CSOLEDBLookup.dll doesn't exist at all (the 32-bit version does, but registering this one doesn't help). What do i have to do One off our customers websites requires this dll registration for there custommer registration form to work. We don't have any problems with the registration form on any of our 32-bit windows 2003 platforms.

Re: Commerce Server 2007 commerce server 2007 CSOLEDBLookup.dll not registered on windows 2003 64-bit

Max Akbar - MSFT

I think the dll is used to lookup errors for the DWA system.

What is the exact error you are getting and how are you registring users

-Max






Re: Commerce Server 2007 commerce server 2007 CSOLEDBLookup.dll not registered on windows 2003 64-bit

Maarten Schuurman

Hi Max,

I submitted the case to Microsoft support and they admitted the 64-bit file version of csoledbLookup.dll and its registry entry are indeed missing. You are right about the function of this dll (error lookup). But, even when there are no errors, CSOLEDBProvider.dll does try to call it anyway.

Infrastructure, new deployments and solving "non-usual" problems are my job, so I'm not really the person writing the code itself. Anyways, the code I had to deploy was something like this:

using CS_Runtime_Profiles = Microsoft.CommerceServer.Runtime.Profiles;

public static bool IsExistingUser(string emailAddress)

{

CS_Runtime_Profiles.Profile userProfile = GetProfile(Settings.Shared.ProfileEmailAddress, emailAddress, "UserObject");

if (userProfile == null)

{

return false;

}

else

{

return true;

}

}

--knip--

public static CS_Runtime_Profiles.Profile GetProfile(string keyName, string keyValue, string profileType)

{

CS_Runtime_Profiles.Profile profile = runtimeManager.GetProfile(keyName, keyValue, profileType);

if (profile != null)

{

profile.Refresh();

}

return profile;

}

(So, a new profile is only created when there is no existing profile with the same email address.)

Renaming the referencing registry keys "...\CLSID\%GUID%\ExtendedErrors" to "...\CLSID\%GUID%\BackupExtendedErrors" and by doing so effectively bypassing the missing dll (a suggestion from support) brings up a new unhandled exception "Failed to refresh profile state from underlying stores."

Anyone...

Maarten




Re: Commerce Server 2007 commerce server 2007 CSOLEDBLookup.dll not registered on windows 2003 64-bit

Max Akbar - MSFT

So let me ask you this, did PSS solve the issue for you

Code Snippet

public static CS_Runtime_Profiles.Profile GetProfile(string keyName, string keyValue, string profileType)

{

CS_Runtime_Profiles.Profile profile = runtimeManager.GetProfile(keyName, keyValue, profileType);

if (profile != null)

{

profile.Refresh();

}

return profile;

}

I am not sure why you are doing a profile.Refresh() you should point this out your devs Using Profiles in a Web Farm Scenario. Now to the error, it's a bad thing to have this error. Basically, what it means is that we tried to refresh the profile cache by going to the database call and we failed to refresh the cache. This is not good in a webfarm scenario, because you can get out of synch.

-Max






Re: Commerce Server 2007 commerce server 2007 CSOLEDBLookup.dll not registered on windows 2003 64-bit

Maarten Schuurman

Hi Max,

There can't be a synch problem because in this case there's no webfarm scenario (just a single front-end a.t.m.). The strange thing is that exactly the same code works flawless on the 32-bit server. Using the same databases doesn't work either. About the profile.refresh: I'm not the one writing the code, so don't ask me (but I will ask them )

Maarten

P.S. They (Microsoft) are working on it.




Re: Commerce Server 2007 commerce server 2007 CSOLEDBLookup.dll not registered on windows 2003 64-bit

Max Akbar - MSFT

Some recomendation:

You should not be doing a refresh on the profiles. We cache the users profile (UserObject, Address, etc...) by default for five minutes. If this is on the same server\system there is no need to refresh the profile, unless I am missing a requirment.

I will let PSS take care of your issue, I don't want to step over them .

-Max