An overview of application compatibility issues on TS
Some of the common compatibility issues with TS are highlighted here-in. For more information on the best practices for
developing applications for TS please refer to the TS Programming Guidelines.
Application installation
Most of application installations are designed for a single user client system which causes problems in the Terminal Services environment. Usually the installation does not create files and registries that would be usable by all the other users (other than the administrative user who is doing the install).
Concurrent usage of application
Files, registries, pipes, IP address, ports etc. are used concurrently by multiple instances of applications in a TS environment. If an application is not designed to take care of such concurrent access/modification scenarios then it might face compatibility issues on TS.Concurrent modification of these resources leads to data corruption and other unexpected behavior.
Multi-user environment
Having your application in a multi-user environment makes it vulnerable to privacy breach and unexpected sharing of data and user preference.
Performance
TS sessions work over networks where multiple users log on to a Windows Server machine over a network. When network bandwidth or machine hardware is a constraint, performance may become a bottleneck for applications.
Devices on TS
While TS does redirect clipboard, printers and drives to allow seamless integration from the client to the server. Several features and devices might not be available over a remote session.
TS Application Analyzer
TS Application Analyzer is a runtime program analysis tool to enable administrators/users to determine if they can deploy an application on TS with a degree of confidence. It provides a summary of TS incompatible behaviour of an application and provides recommendation indicating the confidence level for deploying the application on TS. The classes of Application Compatibility issues that are being targeted for detection are:
- Shared resources – Files/registries
- Access/Privilege issues
- Windows API calls with special cases for TS
The tool does the following:
- Enables the administrators to analyze test runs on the given binary.
- Decides whether the binary will face any problems when deployed on TS. If yes, finds out the type of the problem and its severity.
- Presents this information in a readable format and summarizes the findings along with a recommendation.
- The findings can be exported and analyzed viewed at some other machine.
- The tool can be deployed on a set of user machines or test machine (running the client OS OR the TS server OS) seamlessly. The findings can be gathered at the administrator’s machine. The administrator goes through the findings on all the machines and then makes a decision whether the application can be deployed on TS or not.
Using the tool and interpreting the results
For the full documentation/step-by-step details of the tool please refer to the tool user guide here.
This is not a step-by-step guide but is rather some key things to keep in mind when using the tool –
The tool primarily focuses on the “Concurrent usage” and the “Multi-user environment” related issues. The tool highlights potential problems in an application which might not always manifest. It is essential to understand this in order to correctly interpret and use the results effectively.
The tool breaks down issues into several categories by issue type like File, Registry etc. The tool also breaks down the issues into 2 severity levels “Warnings” and “Problems”.
For most of the times you would want to focus only on the “Problems” unless you are actually trying to pin-point a problem source (which an app-writer or tester might do).
One key thing to understand about a “Problem” is that the tool has detected that a non-TS-compatible API call has been made by the application but this call itself can be a part of a condition in the application.
So it can say “try to open this file as an administrator if you can or if you can’t then just open it as a normal user” but for the tool this would still mean that the application tried to open a file as an administrator and it would flag a “Problem”
So “Problems” are potential problems and need to be analyzed in order to interpret them correctly.
Links to Other Resources
TS at TechNet
TS product homepage
Roaming profiles and folder redirection
TS Programming Guidelines
Recent Comments