For some months now, I've not been able to use Microsoft Terminal Server to connect from my laptop to my work desktop. Oh, I could connect just fine, but then immediately (or very shortly) after logging in I'd be disconnected with the unhelpful error, "Because of a protocol error, this session will be disconnected. Please try connecting to the remote computer again." What does that mean, and what do I do if the error happens again when I try to reconnect as it says? off to search for an answer. Nothing useful there, and Microsoft's help for this message is complete useless. "Try connecting to the remote computer again. If you receive the same message, contact the server administrator." Reconnecting caused the same problem, and I'm the administrator. I tried contacting myself, but I couldn't get through. Now what?
Today I finally found the solution. First let me say that this problem is not with a Windows CE machine, nor is it with the web interface to Remote Desktop. This is a Windows XP to Windows XP session. Anyway, on to the answer.
I had already ruled out bad patches, bad software installations, and even went through a series of troubleshooting steps to "reset" terminal server. Out of the blue today, I got the idea that maybe the visual style I was using could cause this problem, as it might be a drawing issue that TS can't handle. I was using the "sgnome" style (don't remember where I got it but I think it was from deviantART originally), so I swapped back to the default Luna style and tried a TS connection.
It worked! Okay, verify it. Previously, the act of opening an email in Outlook could cause the error, so I tried that. It still works. Tried replying to an email, still worked. Now my TS sessions are rock solid, I'm not getting kicked with a "protocol error", and all I did was change my style back to Luna. WTF? Well, I can't live with Luna as it's too boring, so I went searching for a different style. I settled on Reluna, after verifying that it didn't break anything else.
Why did I think of visual styles? In the past I've had bad styles that broke other things. Most notably, I've had some styles that caused really bad rendering problems when opening a scheduled meeting request from Outlook. If a style can screw that up, it certainly can screw up Terminal Server. The moral of the story is to be careful when using user-created visual styles. They're not certified by Microsoft in any way (in fact, you will generally have to hack uxtheme.dll or pay for something like StyleXP to use non-Microsoft styles at all), and can do some nasty stuff. If you do run into random problems that you've never experienced with a previous style, switch back to Classic or Luna as part of your troubleshooting steps, and see if that solves it.