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();
            }
        }