We are using the old Trident version, before it went open source.
The workflow metadata is stored in the Trident registry or database and we plan on accessing that through code.
We are using custom API provided by Trident team to access the Trident registry or database.
The API code takes as an input the location of the 'ConnStore-Application.configSources' file which stores the details of the Trident back end. When we write this registry access code in a simple Console Application and run it, it gives the desired output.
It runs using the logged in user account and hence runs fine.
When we create a web service with this API code for accessing the Trident registry/backend, and we hit the web service, we get a ProviderMissingException from the Microsoft.Research.DataLayer class. This is a custom exception from the Trident API dll. Whereas,
when we write simple ADO.NET code to access the Trident backend database (using simple connection string) in a web service, it works perfectly. So this does not seem to be permissions issue for the Trident database. It seems to be some issue in the Trident
API DLL code.
Please find the API code used below for reference.
Registry Access API Code
using SR = Microsoft.Research.DataLayer;
Connection registryConnection = null;
string configFilePath = Path.Combine(@"C:\Users\psabhnan\AppData\Roaming\Research\Trident\", "ConnStore-Application.configSources");
= ConnectionManager.CreateCustom(ConnectionManager.CancelBehavior.ThrowException, configFilePath);
if (registryConnection == null)
List<WorkflowRun> returnData = new List<WorkflowRun>();
WorkflowManagerService wms = new WorkflowManagerService(registryConnection);
Collection<SR.Job> jobList = wms.GetCompletedJobs(null);