Help! False Positives
Help! Spam Leakage
Running SNFServer as a Service
SNFServer with XYNTService
The Windows Installer for Message Sniffer Client/Server uses XYNTService to run SNFServer. If you are using the Windows Installer to set up Message Sniffer for you then it will take care of the XYNTService configuration for you.
Manual Install procedure
8 Steps to a manual XYNT Service Install:
- Place the XYNTService.exe and XYNTService.ini file in the same folder*.
- Edit the XYNTService.ini file according to the pattern below.
- Open a cmd window and cd to your XYNTService folder (see 1*).
- Type the install command: "XYNTService -i" [If you tried this already and failed, perform XYNTService -u first to uninstall.]
- Type the restart command: "XYNTService -r"
- Manually start the service once with the command: "net start SNFManagerService"
- Open the taskmanager and confirm that both SNFManagerService and XYNTService are running as proccesses.
- Test with SNFClient.exe -status.second to confirm that the SNFService is answering.
Example .ini text:
[Settings] ProcCount = 1 ServiceName = SNFManagerService CheckProcessSeconds = 30 [Process0] CommandLine = '"C:\TestMyIdea\SNF\SNFServer.exe" "C:\TestMyIdea\SNF\snf_engine.xml"' WorkingDir = "C:\TestMyIdea\SNF" PauseStart = 100 PauseEnd = 100 UserInterface = No Restart = Yes
Getting multiple XYNTService instances mixed up.
Keep in mind that XYNTService.exe works with the XYNTService.ini that is in the same folder and the service name is defined in the XYNTService.ini file. An easy way to think of it is that each "XYNTService instance" belongs in it's own folder where those two files live. If you re-use a service name in more than one XYNTService.ini file then the two instances will conflict with each other.
Forgetting to stop a previously attempted install.
Attempting to re-install a specific named-service if it's already loaded with a different .ini file wont work. If you are trying to correct a previous XYNT install, always stop the named service with net stop ServiceName before trying to uninstall. Then call XYNTService -u in order to clear the old installation from the system.
Watch out for typos -- if you unintentionally install an instance of XYNTService with a typo in the service name you may not realize it is in place. You can use net start (with no parameters) to get a list of the services that are running and check for "orphaned" XYNTService instances.
Spaces in the path strings of the CommandLine and WorkingDir lines.
If you install SNFServer in a path that contains spaces (like "Program Files") then take care to double quote the paths and single quote the entire CommandLine string (see above). Since double quoting doesn't cause any trouble you could just always do this to be safe.
Another option is to use dos style (short) paths such as "c:\progra~1\where\it\is". This is what we do in our installer.
The service starts but SNFServer doesn't seem to be working
XYNTService is a thin service that launches SNFServer. It is possible for XYNTService to run and SNFServer to fail. If this happens the windows service will appear to be started but SNFServer won't be running. If you suspect this is happening then stop the service and run SNFServer in a CMD window using the command line from your XYNTService.ini file. If you can run SNFServer in a CMD window then XYNTService should be able to run it also. If you cannot then SNFServer will tell you why.
SNFServer runs but not like you expect
You may have an error in your snf_engine.xml file. You can usually find these problems by comparing your snf_engine.xml file with the snf_engine_cfg.log file created by SNFServer. When SNFServer reads the snf_engine.xml file it puts what it sees into the snf_engine_cfg.log file. If you see something different then look for a typo in the snf_engine.xml file.
User Login Issues
If you need to run SNFServer as a specific user then you can add the following lines to your XYNTService.ini file. If you leave them empty (as below) or leave them out of your .ini file then XYNTService will run SNFServer as the local system user.
UserName = Domain = Password =