7 Appendix B: Product Behavior

The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include released service packs.

This document specifies version-specific details in the Microsoft .NET Framework. For information about which versions of .NET Framework are available in each released Windows product or as supplemental software, see [MS-NETOD] section 4.

  • Microsoft .NET Framework 4.0

  • Microsoft .NET Framework 4.5

  • Microsoft .NET Framework 4.6

  • Microsoft .NET Framework 4.7

Exceptions, if any, are noted below. If a service pack or Quick Fix Engineering (QFE) number appears with the product version, behavior changed in that service pack or QFE. The new behavior also applies to subsequent service packs of the product unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition.

Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the product does not follow the prescription.

<1> Section The .NET Framework 4.0 implementation of the Workflow Instance Management Protocol includes features that interact with durable program instances in the system and cause the following changes to their state:

  • Persistence: The persistence of the complete state of a durable program instance to a persistence store, thus causing the creation of a "durable instance" which can later be restored in memory.

  • Unhandled Exception behavior: In the case of an unhandled exception from a durable program instance, a preconfigured set of actions can be performed on the in-memory, or durable, durable program instance. For example, the user can configure the system to cause the errant durable program instance to transition to the suspended state.

  • Idle behavior: The persistence of durable program instances that are blocked on some stimuli after a user-configured duration of time, and eventually causing the unloading of these durable program instances from memory after a user-configured duration of time.

These features result in the following consequences for the .NET Framework 4.0 implementation of the Workflow Instance Management Protocol:

  • The Abandon operation disposes the in-memory durable program instance. If the Persistence feature is enabled and a persistence record exists for the durable program instance, then the durable program instance can be reloaded from the persistence store and execution can be continued from that point. The state of the reloaded durable program instance will be the state that was stored in the persisted record for the Instance. If no persistence record exists for the durable program instance, then the durable program instance is effectively transitioned to the final state.

  • The Run and TransactedRun operations load the durable program instance from the persistence store if not already in memory, the Persistence feature is enabled, and a persistence record for the durable program instance exists in the store. These two operations have no effect if the durable program instance is already in memory.

  • The TransactedSuspend, TransactedCancel, TransactedTerminate, and TransactedUnsuspend operations persist the durable program instance if the Persistence feature is enabled. The Suspend, Cancel, Terminate, and Unsuspend operations do not persist the durable program instance, and therefore, the durable state will not be up-to-date after these non-transacted operations. As a result, a sequence of commands, such as Suspend, Abandon, Run, might result in the in-memory durable program instance being in a different state as compared with a sequence of commands, such as TransactedSuspend, Abandon, Run, since the Abandon operation will remove the in-memory instance and the Run operation will reload the durable instance from the last persisted record.

<2> Section The .NET Framework 4.0 implementation supports the WS-AtomicTransaction (WS-AT) Version 1.0 Protocol Extensions [MS-WSRVCAT] and the MSDTC Connection Manager: OleTx Transaction Protocol [MS-DTCO] for flowing transactions using the TransactedRun, TransactedSuspend, TransactedUnsuspend, TransactedCancel, and TransactedTerminate operations. If no transaction is flowed in, a local transaction is created to provide atomic semantics.

Note: In Windows Server 2008 operating system, Windows Server 2008 R2 operating system, Windows Server 2012 operating system, Windows Server 2012 R2 operating system, and Windows Server 2016 operating system, .NET Framework 4.0 is not supported in the Server Core Role. Support for .NET Framework 4.7 was introduced in Windows 10 v1703 operating system client.