Saturday, May 01, 2010

In the trenches…

Been burning extra time working out a nagging Remote Desktop issue.  Still unresolved but I am stubbornly pressing on to solution it.

At the local house of worship, there is a pretty nice LAN setup.  At the sound/video desk we recently installed two Windows 7 Ultimate systems.  These are brawny multi-core systems, x64 bit OS, 8GB RAM systems.  More than enough muscle to power video/sound editing and projection work.

However the desk area itself is very limited.  So we dropped one box (with no monitor) under the desk. Then we use the second workstation on the desk to do a Windows RDC session to the 2nd (headless) workstation as needed.

Only the RDC sessions are a bit “wonky”.

Typically after the first RDC session is started, the login goes through, the remote system desktop is displayed, then the following error message appears on the workstation I am initializing the RDC session from:

“Microsoft Visual C++ Runtime Library
Program C:\Windows\system32\mstsc.exe
-pure virtual function call”

And the RDP session terminates.

If I try again, each time the connection gets briefly established, then kicks off, and the error appears.

After about 7-10 attempts, I am then able to get a “stable” RDC session established with no more kick-offs or errors.  So it does “work”.

I checked the remote system logs and found the following errors noted:

“Event ID: 9015
Desktop Windows Manager was unable to start because the remote client does not support desktop composition remoting.”


“Event ID:9003
Desktop Window Manager was unable to start because a composited theme is not in use.”

I’ve already made sure RDC exceptions are enabled on both systems in Windows Firewall.

I have tried reducing the headless system’s theme to “Classic” and disabling all Aero effects as far as I can tell.

I’ve made sure all the theme management services are running “automatic”.

I’ve tried disabling the various extra RDC “experience” options before connecting.

Same behavior.  Only after seven or more aborted RDC connections is a stable RDC session established.

I’ve tried using the RD client files from a “portable” build based on another system’s Win7 RDC files but same thing, so it doesn’t appear to be a corruption issue with the mstsc executable.

I’m still trying to research the root cause.  Other things I need to pursue this weekend:

  • I did have to turn off “Aero peek” on the system I am RDC’ing from as that was pulling “system focus” away from running presentations if accident hovered over.  Not cool during a service…  I’ve not yet re-enabled it to see if that has any bearing.  I don’t think so as the other geek seems to have the same issue from his own independent Win7 system RDC’ing to the target box.
  • I’ve seen lots of forum threads on similar issues.  In many of those cases the posters felt the issues was a bug in the Win7 RDP client itself.  They felt that way as connecting with a “portable” older set of RDP files from, say, XP SP3 didn’t demonstrate the issue.  I think they are using Remote Desktop Connection (Terminal Services Client 6.0).  I need to grab a set of that version to try to see if that makes a difference.

The facts that I see the error start just after the remote system’s desktop get displayed, that the event logs all mention “composition theme” in some fashion even though all settings seem to support a compatible rendering experience, and that with enough attempts, it eventually “works” suggests to me that it might, in fact, be some kind of network issue.  Could it be that the systems are “talking” too fast to keep up with each other as the different services interact and link-up?  I did find this tantalizing post on tweaking RDP network performance: Remote Desktop slow problem solved which tweaks the Receive Windows Auto-Tuning settings in Windows Vista…need to make sure it carries over to Win 7 as well first.

And yes, of course, we could go with a TVNC based remote desktop solution…or one of many others.  However, connection establishment error excepted, RDC fits the internal need just fine.

It doesn’t look like I am the only one wrestling with this issue.

When I finally get it resolved, I’ll post an update.

BTW, one early bonus from this “project” has been the discovery of the Remote Desktop Services (Terminal Services) Team Blog.  Lots of good info there for you Remote Desktop fans….


--Claus V.


Bozo said...

"Pure virtual method" sounds like you're missing a DLL that contains the missing method. Maybe there's a procedural element to the desktop theme that is missing or inaccessible to the RDC user. The desktop display procs could be pointing to function that is supposed to be provided by the theme itself.

Claus said...

@ Bozo - Thanks for the tip. I'm planning on tossing Process Monitor on it next go round to see if that provides any additional clues on missing files. I'll probably do a trace on both systems and check for failures at both ends.

Sunday I did notice that I had not "enabled" the "Use all my monitors for the remote session" option in the RDC settings.

I didn't feel I needed to since the remote system was only a single-monitor configuration. Right?

However, with the desktop compositing errors I wondered if that might be causing some issues anyway as my controlling system has four monitors on it.

So I enabled it and though the problem didn't vanish, entirely, I seemed to get a stable connection more quickly now. I only got the error once this time.

All the themes in play are default to the OEM Dell systems. And while the hardware is just a bit different, they are both the same basic models and both are running the same x64 Win 7 OS's.

Can't wait to figure this one out!


Claus V.

Unknown said...

Any luck?

Just tried this and so far no issues.

Run command as Administrator in cmd window: sfc /scannow

Also, under RDC window I unchecked the Printers and Clipboard under "Local Resources" Tab. Selected "More" and unchecked SmartCard as well.

No clue which of my steps resolved the issue.

Good luck!

Claus said...

@ Xavier -- great tip with the sfc /scannow I'll have to give it a shot.

To be honest, I got tired of working on it between services (troubleshooting time is a bit limited) so I just installed TightVNC (the latest release for Windows – TightVNC 2.0.2 ) on all the systems and am using that for now for the remote control work.

In my mind it's a "patchy" solution as it still doesn't resolve or fix the root cause for the errors/behavior, but we are smoothly functional now in the meantime.

I'll update more once I do get the time to hammer at them for an extended period of time.


--Claus V.