Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

WorkflowApplication.Abort Method (String)

.NET Framework 4.6 and 4.5

Notifies the workflow runtime that this workflow instance should abort for the specified reason.

Namespace:  System.Activities
Assembly:  System.Activities (in System.Activities.dll)

public void Abort(
	string reason


Type: System.String

The reason for the request to abort.

When a workflow hosted by a WorkflowApplication is aborted, the Aborted handler is invoked and the Completed handler is not invoked.

The following example hosts a workflow using WorkflowApplication. A WorkflowApplication instance is constructed using the specified workflow definition, the desired workflow lifecycle events are handled, and the workflow is invoked with a call to Run. After the workflow is started, Abort is called. When the workflow is aborted, the following output is displayed to the console.

Starting the workflow. 
Workflow 607b042e-98db-4bbe-abe8-f4d750feec41 Idle. 
Workflow 607b042e-98db-4bbe-abe8-f4d750feec41 Aborted
Exception: System.Activities.WorkflowApplicationAbortedException
The reason for aborting the workflow. 
Activity wf = new Sequence
    Activities =
         new WriteLine
             Text = "Starting the workflow."
         new Delay
             Duration = TimeSpan.FromSeconds(5)
         new WriteLine
             Text = "Ending the workflow."

// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(wf);

// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
    if (e.CompletionState == ActivityInstanceState.Faulted)
        Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
        Console.WriteLine("Exception: {0}\n{1}",
    else if (e.CompletionState == ActivityInstanceState.Canceled)
        Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
        Console.WriteLine("Workflow {0} Completed.", e.InstanceId);

        // Outputs can be retrieved from the Outputs dictionary, 
        // keyed by argument name. 
        // Console.WriteLine("The winner is {0}.", e.Outputs["Winner"]);

wfApp.Aborted = delegate(WorkflowApplicationAbortedEventArgs e)
    // Display the exception that caused the workflow 
    // to abort.
    Console.WriteLine("Workflow {0} Aborted.", e.InstanceId);
    Console.WriteLine("Exception: {0}\n{1}",

wfApp.Idle = delegate(WorkflowApplicationIdleEventArgs e)
    // Perform any processing that should occur 
    // when a workflow goes idle. If the workflow can persist, 
    // both Idle and PersistableIdle are called in that order.
    Console.WriteLine("Workflow {0} Idle.", e.InstanceId);

wfApp.PersistableIdle = delegate(WorkflowApplicationIdleEventArgs e)
    // Instruct the runtime to persist and unload the workflow 
    return PersistableIdleAction.Unload;

wfApp.Unloaded = delegate(WorkflowApplicationEventArgs e)
    Console.WriteLine("Workflow {0} Unloaded.", e.InstanceId);

wfApp.OnUnhandledException = delegate(WorkflowApplicationUnhandledExceptionEventArgs e)
    // Display the unhandled exception.
    Console.WriteLine("OnUnhandledException in Workflow {0}\n{1}",
        e.InstanceId, e.UnhandledException.Message);

    Console.WriteLine("ExceptionSource: {0} - {1}",
        e.ExceptionSource.DisplayName, e.ExceptionSourceInstanceId);

    // Instruct the runtime to terminate the workflow. 
    // Other choices are Abort and Cancel 
    return UnhandledExceptionAction.Terminate;

// Run the workflow.



.NET Framework

Supported in: 4.6, 4.5, 4

.NET Framework Client Profile

Supported in: 4
© 2015 Microsoft