TransactedReceiveScope Класс

Определение

Действие, которое определяет время существования транзакции, инициируемой полученной сообщением. Транзакция может передаваться в рабочий процесс в сообщении, инициируемом или создаваться диспетчером при получении сообщения.

public ref class TransactedReceiveScope sealed : System::Activities::NativeActivity
[System.Windows.Markup.ContentProperty("Body")]
public sealed class TransactedReceiveScope : System.Activities.NativeActivity
[<System.Windows.Markup.ContentProperty("Body")>]
type TransactedReceiveScope = class
    inherit NativeActivity
Public NotInheritable Class TransactedReceiveScope
Inherits NativeActivity
Наследование
TransactedReceiveScope
Атрибуты

Примеры

В следующем примере показано, как использовать TransactedReceiveScope класс в действии Sequence .

return new Sequence
{
    Activities = 
    {
        new WriteLine { Text = "Service workflow begins." },

        new System.ServiceModel.Activities.TransactedReceiveScope
        {
            Variables = { requestMessage, replyMessage },
            Request = receive,
            Body = new Sequence
            {
                Activities =
                {
                    new WriteLine { Text = new InArgument<string>("Server side: Receive complete.") },
                    
                    new WriteLine { Text = new InArgument<string>(new VisualBasicValue<string>() { ExpressionText = "\"Server side: Received = '\" + requestString.toString() + \"'\"" }) },

                    new PrintTransactionInfo(),

                    new Assign<string>
                    {
                        Value = new InArgument<string>("Server side: Sending reply."),
                        To = new OutArgument<string>(replyMessage)
                    },

                    new WriteLine { Text = new InArgument<string>("Server side: Begin reply.") },

                    new SendReply
                    {
                        Request = receive,
                        Content = SendContent.Create(new InArgument<string>(replyMessage)),                                    
                    },

                    new WriteLine { Text = new InArgument<string>("Server side: Reply sent.") },
                },
            },
        },

        new WriteLine { Text = "Server workflow ends." },
    },
};

Комментарии

Действие TransactedReceiveScope позволяет управлять временем существования потоковой транзакции.

Предупреждение

Для инициирующего TransactedReceiveScope действия (который TransactedReceiveScope содержит Receive действие с CanCreateInstance заданным значением true), транзакция создается перед запуском TransactedReceiveScope выполнения действия. Эта транзакция не является внешней на уровне действий рабочего процесса, но она находится в среде базовых уровней сохраняемости. Если выполнение рабочего процесса сталкивается с Persist действием перед TransactedReceiveScope действием, среда выполнения пытается сохраниться под внешней транзакцией. Это поведение приводит к блоку до завершения транзакции. Так как выполнение рабочего процесса не достигло Body раздела, транзакция не может завершиться. Эта взаимоблокировка приводит к остановке реагирования рабочего процесса до истечения времени ожидания транзакции. При истечении времени ожидания транзакции вновь созданный экземпляр прерван.

Important

Каждый раз, когда вы используете TransactedReceiveScope, рекомендуется размещать все приемы в рабочем процессе внутри действий TransactedReceiveScope.

Important

При использовании TransactedReceiveScope и отправке сообщений в неправильном порядке рабочий процесс будет прерван при попытке доставить первое сообщение вне порядка. Необходимо убедиться, что рабочий процесс всегда находится в постоянной точке остановки, когда он простаивает. Это позволит перезапустить рабочий процесс из предыдущей точки сохраняемости, если рабочий процесс будет прерван.

Конструкторы

Имя Описание
TransactedReceiveScope()

Инициализирует новый экземпляр класса TransactedReceiveScope.

Свойства

Имя Описание
Body

Возвращает или задает текст ActivityTransactedReceiveScope действия.

CacheId

Возвращает идентификатор кэша, уникального в области определения рабочего процесса.

(Унаследовано от Activity)
CanInduceIdle

Возвращает или задает значение, указывающее, может ли действие привести к простою рабочего процесса.

(Унаследовано от NativeActivity)
Constraints

Возвращает коллекцию Constraint действий, которые можно настроить для проверки.Activity

(Унаследовано от Activity)
DisplayName

Возвращает или задает необязательное понятное имя, используемое для отладки, проверки, обработки исключений и отслеживания.

(Унаследовано от Activity)
Id

Возвращает идентификатор, уникальный в области определения рабочего процесса.

(Унаследовано от Activity)
Implementation

Логика выполнения действия.

(Унаследовано от NativeActivity)
ImplementationVersion

Возвращает или задает версию реализации действия.

(Унаследовано от NativeActivity)
Request

Возвращает или задает действие, связанное с этим Receive действиемTransactedReceiveScope.

Variables

Возвращает коллекцию, связанную Variable с этим TransactedReceiveScope.

Методы

Имя Описание
Abort(NativeActivityAbortContext)

При реализации в производном классе выполняет действия в ответ на прерванное действие.

(Унаследовано от NativeActivity)
CacheMetadata(ActivityMetadata)

Не реализовано. Используйте метод CacheMetadata(NativeActivityMetadata) вместо этого.

(Унаследовано от NativeActivity)
CacheMetadata(NativeActivityMetadata)

Создает и проверяет описание аргументов, переменных, дочерних действий и делегатов действий.

(Унаследовано от NativeActivity)
Cancel(NativeActivityContext)

При реализации в производном классе выполняет логику, чтобы вызвать правильное завершение действия.

(Унаследовано от NativeActivity)
Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Execute(NativeActivityContext)

При реализации в производном классе выполняет логику выполнения действия.

(Унаследовано от NativeActivity)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

Вызывает событие при создании карты для динамического обновления.

(Унаследовано от NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

Вызывает событие при создании карты для динамического обновления.

(Унаследовано от NativeActivity)
ShouldSerializeDisplayName()

Указывает, следует ли DisplayName сериализовать свойство.

(Унаследовано от Activity)
ToString()

Возвращает объект String , содержащий Id и DisplayName из нее Activity.

(Унаследовано от Activity)
UpdateInstance(NativeActivityUpdateContext)

Обновляет экземпляр NativeActivity.

(Унаследовано от NativeActivity)

Применяется к