Поведение служб по умолчанию
В этом образце показано, как могут настраиваться параметры поведения службы. Данный образец основан на образце Образец для начала работы, который реализует контракт службы ICalculator
. В этом образце с помощью атрибутов ServiceBehaviorAttribute и OperationBehaviorAttribute явным образом определены поведения службы и операции. Поведения можно настраивать в файлах конфигурации или непосредственно в коде (как показано в этом образце).
В этом образце клиентом является консольное приложение (EXE), а служба размещается в службах IIS.
Примечание |
---|
Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела. |
Класс службы задает поведение с помощью атрибутов 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. В приведенной ниже таблице описаны некоторые из этих поведений.
Поведение службы | Описание |
---|---|
Автоматически завершает сеанс по запросу клиента. |
|
Задает режим параллелизма для каждого из экземпляров служб. |
|
Задает режим контекста экземпляра. |
|
Определяет, нужно ли использовать предоставляемый контекст синхронизации, если он задан. Его следует использовать, если требуется определить, нужно ли использовать WindowsFormsSynchronizationContext в приложениях Windows Forms. |
|
Определяет, что общие необработанные исключения выполнения должны преобразовываться в Fault<string> и отправляться как сообщения об ошибках. |
|
Задает уровень изоляции транзакций. |
|
Определяет, вызывают ли непредвиденные заголовки сообщений ошибку. |
Поведения операций задаются атрибутом OperationBehaviorAttribute. В приведенной ниже таблице описаны некоторые из этих поведений.
Поведение операции | Описание |
---|---|
Определяет, приводит ли завершение операции службы к завершению текущей транзакции. |
|
Определяет, зачислятся ли операция службы в транзакции потока клиента. |
|
Определяет, олицетворяет ли операция службы удостоверение вызывающей стороны. |
|
Определяет, удаляются ли экземпляры служб при начале и завершении вызова операции службы. |
При выполнении образца запросы и ответы операций отображаются в окне консоли клиента. Задержка между вызовами связана с вызовами метода 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.
Настройка, построение и выполнение образца
Убедитесь, что выполнены процедуры, описанные в разделе Процедура однократной настройки образцов Windows Communication Foundation.
Чтобы выполнить построение версии решения для языка C# или Visual Basic .NET, следуйте инструкциям раздела Построение образцов Windows Communication Foundation.
Чтобы выполнить образец на одном или нескольких компьютерах, следуйте инструкциям в разделе Running the Windows Communication Foundation Samples.
Примечание |
---|
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).
<диск_установки>:\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
|