I am experiencing an issue with RRW on an SBS2003 SP2 machine. The server itself is an IBM x3250 with 4GB of Memory installed. The server idles with around 2GB of memory free.
After a random period of time, could be a couple of minutes, it could be more. The user experiences an issue with the error message: "VBScript: Remote Desktop Disconnected. An Internal error has occurred"
When disconnected, you can click ok on the error message and it will return you to the RWW login page.
The message will happen while the RRW desktop is being used, not when left idle.
The error occurs for all users including the administrator.
The issue is experienced before and after removal of ISA.
The issue occurs when using RWW in the internal network as well as over the internet.
Normal remote desktop over VPN or using Kaseya works flawlessly.
The patch available from http://support.microsoft.com/kb/821438
is unable to be installed with the error "setup has detected that the service pack version of the system installed is newer than the update you are applying it to".
I have tested without any antivirus software installed on the server and this does not resolve the problem.
I have tested the NIC running at 100Mbps rather than GIG-E as per researched recommendations and problem still occurs.
The server has two NIC's installed and both of them will produce this problem. The latest WHQL drivers are installed from Microsoft (Broadcom NetXtreame Gigabit Ethernet). Different switch ports on different switches have been tried.
Any assistance is greatly appreciated.
I have checked all of the following as per info found on vairious forums etc.
I. Check the tsweb timeout settings for RWW:
1. Go to the following location
2. Copy tsweb.aspx to the desktop as a backup
3. Open tsweb.aspx
4. Change the value of MsRdpClient.AdvancedSettin
to 240 from 120
5. Run command 'IISRESET' to restart IIS
II. Please check Remote Web Workplace timeout settings on SBS:
The time out values (in minutes) are configurable in the registry, at:
REG_DWORD: 20 (Default)
REG_DWORD: 120 (Default)
The PublicTimeOut is used when the user checks the box for "I'm using a
public or shared computer" on the RWW logon page. The TrustedTimeOut is
used when the user unchecks this checkbox. You can change the time out
III. ASP.NET timeout
Edit the C:\inetpub\remote\web.conf
Look for line:
<forms name="RemotePortalAuth" loginurl="logon.aspx" protection="All"
path="/" timeout="120" />
timeout = value in minutes of your largest timeout value.
The default timeout in SBS 2003 is 120 minutes.
IV. IIS timeout:
1. Go to Server Management -> Advanced Management -> Internet Information
2. Expand [Server Name] -> Web Sites -> Default Web Site.
3. Right click Remote and choose Properties, in Virtual Directory tab,
click the Configuration button and select the Options tab, modify the
session timeout settings. The Default Session timeout in SBS 2003 is 120
Server, create or edit the DWORD value of KeepAliveEnable and set it to 1. This will turn Keep Alives on. This will serve to stabilize the connection by sending 'heartbeat' packets to the client every so often. This will cause an idle connection to be probed every so often just to be sure that the connection is still alive and that the client is still listening on the other side. This will also help prevent disconnects by preventing network devices from killing off sockets that it assumes to be idle. Because terminal services is such a low bandwidth protocol, when a user is idle, no network activity will occur. Some network devices will interpret a connection that is in the idle state for an extended period of time to be a dead connection, and thus will terminate the socket. However, when the user comes out of the idle state, the terminal services client can no longer contact the terminal server because the socket is dead. By turning on Keep Alives, the connection will not appear idle, and therefore the network device will not attempt to terminate the socket.
In the registry at HKLM\SYSTEM\CurrentControl
create or edit the DWORD value of TcpMaxDataRetransmissions.
By default it is set to 5, but I would recommend doubling that value, to 10. The value of TcpMaxDataRetransmissions is the number of times TCP retransmits an unacknowledged data segment on an existing connection. TCP retransmits data segments until they are acknowledged or until this value expires. Basically, when a client doesn't respond to a packet from the terminal server, the server will attempt to retransmit the packet up to TcpMaxDataRetransmissions number of times. By increasing this value, you are giving the client more time to respond to the server, which will help improve flaky connections or connections with high latency or higher than normal packet loss.