Error 9460 upgrade application webclient

Posted by bart.syryn on 09-Jul-2015 08:29

Hi, I'm upgrading a webclient 102A application to 11.5.1. For deployment I use the webclient Assembler but for the initial installation I use InnoSetup. With this I make a snapshot of a normal installation of a webclient application. That works fine, but when I upgrade the application to a new version the client gets an error: CODEBASE-LOCATOR attribute URL-USERID is unavailable - Webclient could not properly set up or use the security cache (9460). In version 11.3 I've used innosetup to do the initial install, and then for upgrading the application I used the assembler. No problems there, but with 11.5.1 I get this error. The application gets upgraded but I would be nicer if the error doesn't come. Problably there something wrong in my registry settings, but I can't figure it out. I just made a snapshot of a standard installation. Only difference between 11.3 and 11.5.1 webclient is the 64bit installation, but I'm using 32bit (for ActiveX). I also noticed that the standard installation of the application is in C:\users\...\AppData\local\.... I've searched the knowledge base for this error, but didn't find anything and the help doesn't give much information. Can someone point me into the right direction ? Kind regards Bart S.

All Replies

Posted by Garry Hall on 09-Jul-2015 09:02

If the application is being installed into %LOCALAPPDATA%, it means this is a personal install, because you don't have permission to update either the HKLM registry hive or the C:\Program Files (x86)\ file system. Your registry keys will be in HKCU. There are a couple of thoughts:

- IIRC, this error typically occurs because of the absence of the "VAAC" value in the appropriate registry KEY. It is created during application install (at least, it is when using IntelliStream). I might be wrong on this.

- make sure you have the 11.5.1 version of PSCSecReg.dll in your "common" directory. To enable support for both 32-bit and 64-bit webclient on a 64-bit machine, PSCSecReg went through some small but significant changes. This is important because PSCSecReg is responsible for getting the values from the registry.

If you haven't already, take a look in the "OpenEdge Deployment: WebClient Applications". There is a section on "Choosing an Installation Method", which discussed IntelliStream, external installers and combinations.

Posted by bart.syryn on 09-Jul-2015 09:44

I've read the OpenEdge Deployment when I made the same installation in OE11.3.

Haven't read it again now when I made the installation for 11.5.1.

The VAAC is in my registry, but I placed it in HKLM because all my registry keys are in HKLM. Innosetup installed it and set the security.

The DLL in common files is version 11.5.0.1190 but I downloaded Webclient 11.5 SP01 32 bit from ESD. Where can I get the new DLL version (11.5.1) ?

In the webclient application assembler I set only 32bit for platform. Can that be the reason because it is on a windows 7 64bit computer.

Posted by Garry Hall on 09-Jul-2015 10:35

PSCSecReg comes as part of the WebClient install. If you installed WebClient 11.5.1, you should have it there.

The OS of the PC should be irrelevant to the operation of the WCAA, other than the default selection of 32-bit vs 64-bit when creating a new app. If this app was an existing app, then it should stay as 32-bit, and there should not be any problem.

I would need to check into VAAC again. I reviewed all this last year for the 64-bit WebClient work, then promptly forgot it all. SysInternals ProcMon would show you where prowcini.exe/prowc.exe are looking for VAAC.

Posted by bart.syryn on 09-Jul-2015 11:40

Hi Garry,

Thanks for helping me out with this.

But I don't understand what you mean by SysInternals ProcMon would show where prowcini.exe looks for VAAC.

Can you help me out with this ? What do I need to do to see where it looks for the VAAC value.

Kind regards

Bart S.

Posted by Garry Hall on 09-Jul-2015 14:54

I just installed a webclient app, as an Administrator. There is a VAAC in HKCU\SOFTWARE\<vendor>\<app>. However removing this did not cause the error during an upgrade. There is also a VAAC in HKLM (note that with 32-bit WebClient on a 64-bit client machine, this will be be redirected to HKLM\SOFTWARE\Wow6432Node\<vendor>\<app>). I tried removing this, but also did not get the error. I was not using authentication on the web server, but I think there are other other things we look in the codebase-locator for, so you should still get the error... or I could be wrong.

I suspect there is some nuance of this that I am missing. If you can create a reproducible case, I would suggest logging a call with Tech Support, and if they need assistance, I can engage with them.

Posted by Garry Hall on 09-Jul-2015 16:03

And I just tried I with authentication, and did not get the same problem. I am using a strict IntelliStream solution, not InnoSetup.

Posted by bart.syryn on 10-Jul-2015 02:23

Hi Garry,

When I install the application with intellieStream I also don't get the error. First installed the webclient and then opened the .prowcapc file.

It's when I use InnoSetup for the initial installation on the clients computer and then upgrade the application that I get the error. So there must be a change between 11.3 and 11.5 so that my InnoSetup installation isn't correct anymore.

For building the InnoSetup installation I installed the application with IntelliStream and then took a snapshot of all the registry keys etc. The innosetup invokes a silent install of the webclient.

Difference I see between IntelliStream and my InnoSetup is that I install the application with the registry keys in HKLM and that intellistream installs it in HKCU. Another difference is that my InnoSetup places the registry keys in Wow6432Node of HKLM\Software and that Intellistream install it in HKCU\Software, so not in the Wow6432Node of HKCU.

Another difference is that Intellistream installs it in the AppData\Local\-folder of the user and my Innosetup installs it in the 'Program Files x86' folder.

Kind regards

Bart S

Posted by Garry Hall on 10-Jul-2015 08:44

Hi Bart,

Without seeing what is in your registry, I suspect the difference in registry locations might be due to Administrator vs Personal install of the application. IntelliStream installs the application to user-private registry keys and directories if the user does not have permission to write to the public ones. I think there is a message which will tell you whether the install is Administrator or Private. Thus the use of %LOCALAPPDATA% and some of the HKCU keys. Your InnoSetup probably copied an Administrator install.

Hmmm... maybe your InnoSetup install is writing the Administrator keys and files, but your IntelliStream update is seeing that it does not have write access to these resources, and goes looking for information in the private areas instead, and since they are not there, you get the error... just a guess. You could try to simulate this with IntelliStream by installing the app as a user who does have write access to "C:\Program Files (x86)" and HKLM\Software, then trying the update with a user who doesn't have write access.

Garry.

Posted by bart.syryn on 10-Jul-2015 09:06

Hi Garry,

What I found very strange, tested just now, is that with the webclient 11.3 it just works fine.

I have another Webclient application 11.3. Initial installation is also with InnoSetup. The keys get installed in HKLM and 'Program files x86'. When I do an update with the WCAA there's no error. Exact the same thing with 11.5 and I get that error, but the application gets updated...

Same user on same computer ...

I'm thinking on moving back to 11.3.....

Kind regards

Bart S.

Posted by Garry Hall on 10-Jul-2015 10:36

There were changes made in 11.4 for 64-bit WebClient, but there was significant effort to minimise the impact to existing applications. This emphasis was only for IntelliStream. However, the doc was updated for non-IntelliStream installations.

Posted by Peter Judge on 10-Jul-2015 12:39

Bart,

InnoSetup has different APIs for working with the 32- and 64-bit keys. I had to do something like the blow code in the AutoEdge installer so that I could get all of the versions installed on a 64-bit machine.

	
	// Make sure we're reading from the correct part of the registry
	// http://www.jrsoftware.org/ishelp/index.php?topic=registrysection
	if IsWin64 then
	begin
		subkeysExist := RegGetSubkeyNames(HKLM64, 'SOFTWARE\PSC\PROGRESS', OpenEdgeReleases);
		if (subkeysExist) then
			AddVersions(OpenEdgeReleases);
	end;
	
	subkeysExist := RegGetSubkeyNames(HKLM32, 'SOFTWARE\PSC\PROGRESS', OpenEdgeReleases);


Posted by bart.syryn on 13-Jul-2015 02:19

Hi Peter,

Thanks for helping me out.

I'm trying to understand your post, but no luck.

The code you provide, that is code for the InnoSetup installation kit (initial setup). Am I correct ?

What do you mean by AutoEdge installer ? What does your piece of code exactly do. I see that you check if it's a 64bit installation. According to that, you read different keys.  But is this piece of code for an update of the application and not the initial install ?

What I do, I have a InnoSetup installation that the user can download and install. This copies all the files, set the registry keys and do a silent install of the webclient.  At that point, I don't use Innosetup anymore.  If there is a update of the application, then I use the standad OpenEdge functionality (intellistream).

I really don't understand from where the error 'CODEBASE-LOCATOR attribute URL-USERID is unavailable' comes from after an update of the application....It must have something to do with my innosetup installer. I pretty shure it has nothing to do with security, because a 11.3 application on same computer with same credentials has no problems.

Kind regards

Bart S.

Posted by Peter Judge on 13-Jul-2015 07:53

HI Bart,
 
You mentioned in an earlier post that
Another difference is that my InnoSetup places the registry keys in Wow6432Node of HKLM\Software and that Intellistream install it in HKCU\Software, so not in the Wow6432Node of HKCU. - See more at: https://community.progress.com/community_groups/openedge_development/f/19/p/19051/68001.aspx#68001
 
That code snippet was to illustrate the different nodes you can use.
 
I'm not sure how you're building your installer. I use Inno Script Studio from https://www.kymoto.org/ for most of my editing of the ISS files.  This lets you edit the installer using WYSIWYG and also provides access to the scripting parts.
 
 
 
[collapse]
From: bart.syryn [mailto:bounce-bartsyryn@community.progress.com]
Sent: Monday, 13 July, 2015 03:21
To: TU.OE.Development@community.progress.com
Subject: RE: [Technical Users - OE Development] Error 9460 upgrade application webclient
 
Reply by bart.syryn

Hi Peter,

Thanks for helping me out.

I'm trying to understand your post, but no luck.

The code you provide, that is code for the InnoSetup installation kit (initial setup). Am I correct ?

What do you mean by AutoEdge installer ? What does your piece of code exactly do. I see that you check if it's a 64bit installation. According to that, you read different keys.  But is this piece of code for an update of the application and not the initial install ?

What I do, I have a InnoSetup installation that the user can download and install. This copies all the files, set the registry keys and do a silent install of the webclient.  At that point, I don't use Innosetup anymore.  If there is a update of the application, then I use the standad OpenEdge functionality (intellistream).

I really don't understand from where the error 'CODEBASE-LOCATOR attribute URL-USERID is unavailable' comes from after an update of the application....It must have something to do with my innosetup installer. I pretty shure it has nothing to do with security, because a 11.3 application on same computer with same credentials has no problems.

Kind regards

Bart S.

Stop receiving emails on this subject.

Flag this post as spam/abuse.

[/collapse]

Posted by bart.syryn on 13-Jul-2015 09:31

hi Peter,

Now I understand what the purpose is for the code ...

I use InnoSetup, probably the same principle as Inno Script Studio.

But I'm still stuck with this problem. Why does this need to be installed in HKCU and why am I getting that error if I install the application with InnoSetup in HKLM.... Seems obvious to install it in HKLM. At customer's site, Administrator comes, logs in and installs the application. So it need to be in HKLM......  In 11.3 no problem at all there...

Kind regards

Bart S.

Posted by Garry Hall on 13-Jul-2015 09:44

I'd suggest logging the issue with Tech Support, with a reproducible case. At this time I don't have enough information to determine if this is a bug in 11.4+ or not.

Posted by bart.syryn on 14-Jul-2015 09:39

Hi,

Before logging this issue with Tech Support I tested the following.

As I mentioned before, with OE11.3 (a similar application on another server) I had no problems.

So I removed OE11.5 from this server and installed OE11.3(SP03).

Then I used the same InnoSetup exe file to do the installation and I get the same error when I upgrade the application. Then I checked the setup and registry files with those from the application that gives no problem, and they are exactly the same. So my thought is that this is not a Progress Bug, but there must be something different between the two servers. The setup's are the same ....  Security on the client-pc isn't it, because with the other application and user everything is fine.

Can the error, when upgrading the application (codebase-locater and usrid), have something to do with TomCat or IIS ?  Both servers are Windows 2012R2.

Kind regards

Bart S.

Posted by Garry Hall on 14-Jul-2015 10:25

I don't see a direct relationship between the error and the server being request. When setting up to download the new cab files from the CODEBASE-LOCATOR, we query the URL-USERID, URL-PASSWORD and a number of other things. This queries the registry. I don't see how a difference in the server will change the information written to the registry. Still, I might be wrong, so if you can provide a reproducible case that demonstrates it, we can look into it.

Posted by bart.syryn on 14-Jul-2015 10:39

Hi Garry,

Like I said before, with IntelliStream, no problems at all. But if the application is installed with the InnoSetup application .exe I get that error. How can I provide you with a reproducible case ? If I give you the link to download the installation file is that enough ?

I never used URL-USERID and URL-Password ... so that's not in my codebase-locator (in WCAA 'Prompt for ID/Password is unchecked).  My codebase only has the following parameter: http://publicdomainname/etest

Posted by Garry Hall on 14-Jul-2015 10:48

The WebClient Initializer interrogates the CODEBASE-LOCATOR values anyway, whether they are set or not.

Tech Support would need to be able to reproduce the problem as you see it. So the initial InnoSetup install, and the IntelliStream upgrade that demonstrates the problem should be sufficient.

Posted by bart.syryn on 14-Jul-2015 11:16

Ok, I'll open a case with TechSupport and reference to this case.

Thanks for helping me out.

Kind regards

Bart S.

This thread is closed