Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Varsayılan örnek, hizmet davranışı ayarlarının nasıl yapılandırılabildiğini gösterir. Örnek, hizmet sözleşmesini uygulayan ICalculator temel alınarak oluşturulmuştur. Bu örnek, ServiceBehaviorAttribute ve OperationBehaviorAttribute özniteliklerini kullanarak hizmet davranışlarını ve işlem davranışlarını açıkça tanımlar. Yapılandırma dosyalarında veya kodda (bu örnekte gösterildiği gibi) davranışları kesin olarak yapılandırabilirsiniz.
Bu örnekte, istemci bir konsol uygulamasıdır (.exe) ve hizmet Internet Information Services (IIS) tarafından barındırılır.
Uyarı
Bu örnek için kurulum yordamı ve derleme yönergeleri bu konunun sonunda yer alır.
Hizmet sınıfı, ServiceBehaviorAttribute ve OperationBehaviorAttribute ile gösterildiği gibi davranışları belirtir. Belirtilen tüm değerler varsayılan değerlerdir.
[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;
}
...
}
Hizmet davranışları özniteliğiyle ServiceBehaviorAttribute belirtilir. Aşağıdaki tabloda bu davranışlardan bazıları açıklanmaktadır.
| Hizmet davranışı | Açıklama |
|---|---|
| AutomaticSessionShutdown | İstemcinin isteği üzerine oturumu otomatik olarak kapatır. |
| ConcurrencyMode | Her hizmet örneği için eşzamanlılık modunu belirtir. |
| InstanceContextMode | Örnek bağlam modunu belirtir. |
| UseSynchronizationContext | Ayarlanmışsa sağlanan eşitleme bağlamını kullanıp kullanmayacağını belirler. Windows Forms uygulamalarında kullanılıp kullanılmayacağını WindowsFormsSynchronizationContext denetlemek istediğinizde bunu kullanın. |
| IncludeExceptionDetailInFaults | Genel işlenmeyen yürütme özel durumlarının bir Fault<string>'ye dönüştürülüp hata iletisi olarak gönderileceğini belirler. |
| TransactionIsolationLevel | İşlemler için yalıtım düzeyini belirtir. |
| ValidateMustUnderstand | Beklenmeyen ileti üst bilgilerinin hata koşuluna neden olup olmadığını belirler. |
İşlem davranışları özniteliği kullanılarak OperationBehaviorAttribute belirtilir. Aşağıdaki tabloda bu davranışlardan bazıları açıklanmaktadır.
| İşlem Davranışı | Açıklama |
|---|---|
| TransactionAutoComplete | Hizmet işleminin tamamlanmasının geçerli işlemi taahhüt edip etmediğini belirler. |
| TransactionScopeRequired | Hizmet işleminin, istemci tarafından yönetilen bir işlemde yer alıp almadığını belirler. |
| Impersonation | Hizmet işleminin çağıranın kimliğine bürünip bürünmeyeceğini belirler. |
| ReleaseInstanceMode | Hizmet örneklerinin hizmet işlemi çağrısının başında mı yoksa sonunda mı geri dönüştürüleceğini belirler. |
Örneği çalıştırdığınızda, işlem istekleri ve yanıtları istemci konsolu penceresinde görüntülenir. Çağrılar arasındaki gecikme, hizmet işlemleri sırasında System.Threading.Thread.Sleep()'ye yapılan çağrıların bir sonucudur. Diğer davranış örnekleri bu davranışları daha ayrıntılı olarak açıklar. İstemciyi kapatmak için istemci penceresinde ENTER tuşuna basın.
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.
Örneği ayarlamak, derlemek ve çalıştırmak için
Windows Communication Foundation Örnekleri içinOne-Time Kurulum Yordamını yaptığınızdan emin olun.
Çözümün C# veya Visual Basic .NET sürümünü oluşturmak için Windows Communication Foundation Örneklerioluşturma başlığındaki yönergeleri izleyin.
Örneği tek bir makine veya makineler arası bir yapılandırmada çalıştırmak için, Windows Communication Foundation örneklerini çalıştırmayönergelerini izleyin.