Recently I came across a strange issue, which is that when opening the AX client it opens 2 external IE Windows with the user’s rolecenter page, instead of just the one embedded within the client.
After a bit of investigation we found that this is because the URL for the EP site has been entered in the AX client (administration->setup->internet->enterprise portal->web sites) with capital letters – if you change them to be lower case then this won’t happen.
If you’re interested to understand why this happens then please read on…
What happens in the background is that the client looks up the user’s profile in the database to find their rolecenter URL, then it starts an embedded explorer window in the client something like this (pseudocode example):
EmbededBrowser = shell.explorer;
The URL retrieved at this stage is cached by the client in case it needs it again later.
Now the important part is that the AX client also hooks into the OnBeforeNavigate2() event on the explorer instance it created – so before explorer displays the page it calls back to the AX client, and it makes some checks – one of these checks is that the URL explorer is about to open is the same as the URL that was passed to it – this is where the capital letters can cause a problem!
Explorer will have made the whole URL lowercase, but the AX client has the URL cached however it was entered into the “web sites” form.
At this point if the URLs do not match then AX client makes the decision to open the URL in a new window and to cancel navigation in the embedded window in the client, this runs round a couple of loops which is why there are two explorer windows opened.
As I mentioned at the start of the article, just change the URL in the web sites form in AX to be all in lowercase letters and it will be solved.