If the WaspTimeServer Service starts, but then stops after a few seconds, or if you intermittently get errors in the program saying no connection could be made because the target actively refused it, we need to check the WaspTimeServer.log file in the WaspTime program directory on the server machine. Look for an error similar to:
2012-07-27 17:46:16.359 9 WaspTimeListenThread ERROR | Error in WaspTimeListener Thread: System.Net.Sockets.SocketException: Only one usage of each socket address (protocol/network address/port) is normally permitted
| at System.Net.Sockets.Socket.DoBind(EndPoint endPointSnapshot, SocketAddress socketAddress)
| at System.Net.Sockets.Socket.Bind(EndPoint localEP)
| at Wasp.WtUdpClient.WtBind(IPEndPoint ep)
| at WaspTimeService.WaspTimeService.WaspTimeListenThread()
2012-07-27 17:46:16.359 9 WaspTimeListenThread ERROR | Error in WaspTimeListener Thread: Application terminating
This error generally indicates a port conflict on the server. The service will attempt to restart itself when this happens, which is why the program will appear to start working again after the brief pause. However, leaving the service in this state will cause communication issues with the clocks, potentially interrupting downloads or processing of the punches or other errors, so it should be resolved.
If the server is also your domain controller, you will need to move the WaspTime Server service to a different machine. The database is unaffected, so it can remain on the existing server.
To move the service, run the installation cd or download on one of your other machines. If WaspTime is already installed on that machine, choose the Modify option when prompted. When asked for which components to install, add a check for the Time Server service. It will then prompt for the server's machine name, and the service will then make its connection to the database.
On the server machine, go to Start > Run > Services.msc. Scroll down the list and locate WaspTimeServer. Right click on it and go to Properties. Set Startup Type to Disabled, then click Stop.
When you open the client program, when it fails to reach the service on the old server, it will poll the network looking for the service, and will automatically connect to the new server.
If the server is not the domain controller, there may be a different program causing the port conflicts. There is a utility from Microsoft called TCPView that you can use to determine what is active on each port. Download the utility from http://technet.microsoft.com/en-us/sysinternals/bb897437 and follow their instructions to install and use it.
This utility is part of a larger suite called Sysinternals, which you can also view from http://technet.microsoft.com/en-us/sysinternals/bb842062 . Some of these utilities would allow you to damage your Windows installation, so use with caution if you are not sure what you are doing.
The default port for the WaspTimeServer service is 10002.
Once you have identified a port number without a conflict, perform the following steps to move the service to the new port:
1. Stop the WaspTimeServer service from the Services list.
2. Right click on WaspTimeServer and go to Properties. On the Recovery tab, set all 3 of the drop down menus to Take No Action, and click OK.
3. Go to Start > Run, enter regedit.exe. Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Wasp Technologies\WaspTime5\Options. There are 3 entries that need to be updated: Service Port, ServicePort, and Time Server Port. Right click each in turn and select Modify, set the Base to Decimal, then enter your new port number and click OK.
4. On the Services list, right click WaspTimeServer and select Start. Wait about 30 seconds, then refresh the list to make sure it has remained Started.
5. The clients should automatically pick up the correct new port number. If not, open regedit.exe on the clients and navigate to HKEY_CURRENT_USER\Software\Wasp Technologies\WaspTime5\Options. Set the Time Server Port there to match the one from above.
WaspTime: WaspTimeServer service on the same machine as DNS: