void OnEndFindExistingInstances(IAsyncResult result) { SqlCommand command = result.AsyncState as SqlCommand; try { SqlDataReader dataReader = command.EndExecuteReader(result); while (dataReader.Read()) { string workflowDefinitionPath = dataReader.GetString(dataReader.GetOrdinal("workflowDefinitionPath")); Guid id = dataReader.GetGuid(dataReader.GetOrdinal("id")); FileUtil.LoadFile( workflowDefinitionPath, (path, stream) => { Activity program; if (TryLoadAndValidateProgram(stream, workflowDefinitionPath, out program)) { WorkflowApplication instance = new WorkflowApplication(program); instance.InstanceStore = this.instanceStore; instance.Extensions.Add(() => new WorkflowDefinitionExtension(workflowDefinitionPath, connectionString)); TextWriter instanceWriter = ConfigureExtensions(instance); instance.BeginLoad(id, new AsyncCallback(OnEndLoad), new object[] { instance, instanceWriter }); } }, this.hostView.ErrorWriter); } } catch (SqlException exception) { this.hostView.ErrorWriter.WriteLine("Could not load existing instances due to a Sql Exception: " + exception.ToString()); } finally { command.Connection.Close(); } }