Our .NET server application (which is installed on a customer PC at a mine site) is displaying strange behaviour that I can neither explain nor reproduce. Clients, which are Windows Mobile devices running a .NET CF app, connect to the server over the site's WiFi network via a SuperTcp channel. We are currently using RO v8.0.82.1136.
All is well for a while after the server is started (i.e. clients can call open methods, or establish a session, etc) but after a variable amount of time (sometimes an hour, sometimes more), new clients that are not currently connected to the server are unable to call any methods. Every call is met with (most commonly) a SocketException:
System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it
at System.Net.Sockets.Socket.ConnectNoCheck(EndPoint remoteEP)
at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
at RemObjects.InternetPack.Connection.DataSocketConnect(EndPoint endPoint)
at RemObjects.InternetPack.Connection.Connect(IPAddress address, Int32 port)
at RemObjects.InternetPack.Client.GetConnection(IPAddress host, Int32 port)
at RemObjects.InternetPack.Client.Connect(IPAddress host, Int32 port)
at RemObjects.InternetPack.Client.Connect(String hostname, Int32 port)
at RemObjects.SDK.IpSuperTcpClientChannel.DoStart()
at RemObjects.SDK.IpSuperTcpClientChannel.set_Active(Boolean value)
at RemObjects.SDK.IpSuperTcpClientChannel.BeforeDispatch(IMessage message)
at RemObjects.SDK.ClientChannel.Dispatch(IMessage message)
at [...]
Occasionally we've seen SocketExceptions with different messages, such as "A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond."
Clients that are already connected or that have established a session are not affected. They can continue to call methods on the server without error. The issue only affects new clients that are trying to connect. The number of simultaneously connected clients is small, usually no more than 5.
Once this issue has begun to occur, it makes no difference whether new clients try to connect via WiFi or via a USB/RNDIS connection - all method calls fail. However, it is still possible to ping the server from a client device, and vice versa.
The only workaround we've come up with is to close and reopen the server channel, or quit and restart the server app completely. This is not always convenient or possible, as it requires someone to interact with the server PC, and there isn't always someone available. Meanwhile, the users of the client devices, who may be some distance away, are forced to work in offline mode until a server restart is performed.
The users have noticed that the problem occurs most often first thing in the morning, after the server PC has been locked overnight with the server app running, but it also occurs during the day. It is happening multiple times a day sometimes.
I cannot reproduce this behaviour under controlled conditions, and I have no idea what could be causing it. Does it sound like any known issues which may have been fixed in a later version of RO?