Поделиться через


Поведение служб по умолчанию

В этом образце показано, как могут настраиваться параметры поведения службы. Данный образец основан на образце Образец для начала работы, который реализует контракт службы ICalculator. В этом образце с помощью атрибутов ServiceBehaviorAttribute и OperationBehaviorAttribute явным образом определены поведения службы и операции. Поведения можно настраивать в файлах конфигурации или непосредственно в коде (как показано в этом образце).

В этом образце клиентом является консольное приложение (EXE), а служба размещается в службах IIS.

ms751438.note(ru-ru,VS.100).gifПримечание
Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела.

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

[ServiceBehavior(
    AutomaticSessionShutdown=true,
    ConcurrencyMode=ConcurrencyMode.Single,
    InstanceContextMode=InstanceContextMode.PerSession,
    IncludeExceptionDetailInFaults=false,
    UseSynchronizationContext=true,
    ValidateMustUnderstand=true)]
public class CalculatorService : ICalculator
{
    [OperationBehavior(
        TransactionAutoComplete=true,
        TransactionScopeRequired=false,
        Impersonation=ImpersonationOption.NotAllowed)]
    public double Add(double n1, double n2)
    {
        System.Threading.Thread.Sleep(1600);
        return n1 + n2;
    }
    ...
}

Поведения службы задаются атрибутом ServiceBehaviorAttribute. В приведенной ниже таблице описаны некоторые из этих поведений.

Поведение службы Описание

AutomaticSessionShutdown

Автоматически завершает сеанс по запросу клиента.

ConcurrencyMode

Задает режим параллелизма для каждого из экземпляров служб.

InstanceContextMode

Задает режим контекста экземпляра.

UseSynchronizationContext

Определяет, нужно ли использовать предоставляемый контекст синхронизации, если он задан. Его следует использовать, если требуется определить, нужно ли использовать WindowsFormsSynchronizationContext в приложениях Windows Forms.

IncludeExceptionDetailInFaults

Определяет, что общие необработанные исключения выполнения должны преобразовываться в Fault<string> и отправляться как сообщения об ошибках.

TransactionIsolationLevel

Задает уровень изоляции транзакций.

ValidateMustUnderstand

Определяет, вызывают ли непредвиденные заголовки сообщений ошибку.

Поведения операций задаются атрибутом OperationBehaviorAttribute. В приведенной ниже таблице описаны некоторые из этих поведений.

Поведение операции Описание

TransactionAutoComplete

Определяет, приводит ли завершение операции службы к завершению текущей транзакции.

TransactionScopeRequired

Определяет, зачислятся ли операция службы в транзакции потока клиента.

Impersonation

Определяет, олицетворяет ли операция службы удостоверение вызывающей стороны.

ReleaseInstanceMode

Определяет, удаляются ли экземпляры служб при начале и завершении вызова операции службы.

При выполнении образца запросы и ответы операций отображаются в окне консоли клиента. Задержка между вызовами связана с вызовами метода System.Threading.Thread.Sleep() в операциях службы. В остальных образцах поведений эти поведения описаны более подробно. Чтобы закрыть клиент, нажмите клавишу ВВОД в окне клиента.

Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714

Press <ENTER> to terminate client.

Настройка, построение и выполнение образца

  1. Убедитесь, что выполнены процедуры, описанные в разделе Процедура однократной настройки образцов Windows Communication Foundation.

  2. Чтобы выполнить построение версии решения для языка C# или Visual Basic .NET, следуйте инструкциям раздела Построение образцов Windows Communication Foundation.

  3. Чтобы выполнить образец на одном или нескольких компьютерах, следуйте инструкциям в разделе Running the Windows Communication Foundation Samples.

ms751438.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WCF\Basic\Services\Behaviors\Default