Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В примере по умолчанию показано, как можно настроить параметры поведения службы. Пример основан на руководстве по началу работы, которое реализует ICalculator контракт службы. Этот пример явно определяет поведение служб и поведение операций с помощью атрибутов ServiceBehaviorAttribute и OperationBehaviorAttribute. Вы можете настроить поведение в файлах конфигурации или императивно в коде (как показано в этом примере).
В этом примере клиентом является консольное приложение (.exe), а служба хостится с помощью Internet Information Services (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 . В следующей таблице описаны некоторые из этих действий.
| Поведение службы | Описание |
|---|---|
| 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.
Настройка, сборка и запуск примера
Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.
Чтобы создать версию решения на C# или Visual Basic .NET, следуйте инструкциям по сборке примеров Windows Communication Foundation .
Чтобы запустить пример в конфигурации с одним или несколькими компьютерами, следуйте инструкциям в запуска примеров Windows Communication Foundation.