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.
Windows Communication Foundation (WCF) SOAP güvenilir mesajlaşma, SOAP uç noktaları arasında uçtan uca ileti aktarımı güvenilirliği sağlar. Bunu, aktarım hatalarının ve SOAP ileti düzeyi hatalarının aşılmasıyla güvenilir olmayan ağlarda yapar. Özellikle, SOAP veya aktarım aracıları arasında gönderilen iletiler için oturum bazlı, tekli ve (isteğe bağlı) sıralı teslimat sağlar. Oturum tabanlı teslim, isteğe bağlı olarak iletilerin sıralanmasıyla bir oturumdaki iletileri gruplandırma olanağı sağlar.
Bu konuda güvenilir oturumlar, bunların nasıl ve ne zaman kullanılacağı ve bunların güvenliğinin nasıl sağlandığı açıklanmaktadır.
WCF güvenilir oturumları
WCF güvenilir oturumları, WS-ReliableMessaging protokolü tarafından tanımlanan SOAP güvenilir mesajlaşma uygulamasıdır.
WCF SOAP güvenilir mesajlaşma, mesajlaşma uç noktalarını ayıran aracıların sayısından veya türünden bağımsız olarak iki uç nokta arasında uçtan uca güvenilir bir oturum sağlar. Buna, iletilerin uç noktalar arasında akması için gereken SOAP kullanmayan taşıma aracıları (örneğin, HTTP proxy'leri) veya SOAP kullanan aracılar (örneğin, SOAP tabanlı yönlendiriciler ve köprüler) dahildir. Güvenilir bir oturum kanalı , etkileşimli iletişimi destekler, böylece böyle bir kanal tarafından bağlanan hizmetler eşzamanlı olarak çalışır ve düşük gecikme süresi koşulları altında ,yani nispeten kısa bir süre içinde iletileri alıp işler. Bu bağlama, bu bileşenlerin birlikte ilerlemesi veya birlikte başarısız olması anlamına gelir, bu nedenle aralarında yalıtım sağlanmaz.
Güvenilir bir oturum iki tür hatayı maskeler:
Kayıp veya yinelenen iletileri ve gönderildikleri sıraylan farklı bir sırayla gelen iletileri içeren SOAP ileti düzeyi hataları.
Taşımacılık hataları.
Güvenilir bir oturum, SOAP ileti düzeyi hatalarını maskelemeye yönelik WS-ReliableMessaging protokol ve bellek içi aktarım penceresi uygular ve aktarım hataları durumunda bağlantıları yeniden kurar.
Güvenilir bir oturum, TCP'nin IP paketleri için sağladığı SOAP iletilerini sağlar. TCP yuva bağlantısı, düğümler arasında IP paketlerinin tek bir sıralı aktarımını sağlar. Güvenilir kanal aynı tür güvenilir aktarım sağlar, ancak TCP yuva güvenilirliğinden aşağıdaki yollarla farklıdır:
Güvenilirlik, rastgele boyutlandırılmış bir bayt paketi için değil SOAP ileti düzeyindedir.
Güvenilirlik yalnızca TCP üzerinden aktarım için değil aktarımdan bağımsızdır.
Güvenilirlik belirli bir aktarım oturumuna (örneğin, TCP bağlantısının sağladığı oturum) bağlı değildir ve güvenilir oturumun ömrü boyunca birden çok aktarım oturumunu eşzamanlı veya sıralı olarak kullanabilir.
Güvenilir oturum, aralarında bağlantı için gereken aktarım bağlantısı sayısından bağımsız olarak gönderen ve alıcı SOAP uç noktaları arasındadır. Kısacası, TCP güvenilirliği aktarım bağlantısının sona erdiği yerde sona ererken, güvenilir bir oturum uçtan uca güvenilirlik sağlar.
Güvenilir oturumlar ve bağlantılar
Daha önce belirtildiği gibi, güvenilir bir oturum aktarım nötrdür. Ayrıca, istek-yanıt veya çift yönlü gibi birçok ileti değişimi deseni üzerinde güvenilir bir oturum oluşturabilirsiniz. WCF güvenilir oturumu, bir bağlama kümesinin özelliği olarak kullanıma sunulur.
Şu uç noktalarda güvenilir bir oturum kullanın:
HTTP tabanlı aktarım standart bağlamaları:
WsHttpBindingve istek-yanıt veya tek yönlü anlaşmalarını açığa çıkarır.İstek-yanıt veya basit tek yönlü servis sözleşmesi üzerinden güvenilir oturumdan yararlanırken.
WsDualHttpBindingve çift yönlü, istek-yanıt veya tek yönlü sözleşmeleri kullanıma sunar.WsFederationHttpBindingve istek-yanıt veya tek yönlü anlaşmalarını açığa çıkarır.
TCP tabanlı aktarım standart bağlamaları:
-
NetTcpBindingve çift yönlü, istek yanıtı veya tek yönlü sözleşmeleri sunma.
-
HTTPS (sorunlar hakkında daha fazla bilgi için bkz . Güvenilir oturumlar ve güvenlik) veya adlandırılmış kanal bağlaması gibi özel bir bağlama oluşturarak diğer bağlamalarda güvenilir bir oturum kullanın.
Güvenilir bir oturumu farklı temel kanal türlerine yığabilirsiniz ve sonuçta elde edilen güvenilir oturum kanalı şekli farklılık gösterir. Hem istemcide hem de sunucuda desteklenen güvenilir oturum kanalının türü, kullanılan temel kanalın türüne bağlıdır. Aşağıdaki tabloda, temel alınan kanal türünün işlevi olarak istemcide desteklenen oturum kanalı türleri listelenmektedir.
| Desteklenen güvenilir oturum kanalı türleri† | IRequestChannel |
IRequestSessionChannel |
IDuplexChannel |
IDuplexSessionChannel |
|---|---|---|---|---|
IOutputSessionChannel |
Evet | Evet | Evet | Evet |
IRequestSessionChannel |
Evet | Evet | Hayı | Hayı |
IDuplexSessionChannel |
Hayı | Hayı | Evet | Evet |
Desteklenen kanal türleri, TChannel yöntemine geçilen bir genel BuildChannelFactory<TChannel>(BindingContext) parametre değeri için mevcut olan değerlerdir.
Aşağıdaki tabloda, temel alınan kanal türünün işlevi olarak sunucuda desteklenen oturum kanalı türleri listelenmektedir.
| Desteklenen güvenilir oturum kanalı türleri‡ | IReplyChannel |
IReplySessionChannel |
IDuplexChannel |
IDuplexSessionChannel |
|---|---|---|---|---|
IInputSessionChannel |
Evet | Evet | Evet | Evet |
IReplySessionChannel |
Evet | Evet | Hayı | Hayı |
IDuplexSessionChannel |
Hayı | Hayı | Evet | Evet |
‡Desteklenen kanal türleri, TChannel parametre değeri olarak genel olarak geçilen değerlerdir ve BuildChannelListener<TChannel>(BindingContext) yönteminde kullanılabilir.
Güvenilir oturumlar ve güvenlik
Güvenilir bir oturumun güvenliğini sağlamak, iletişim sağlayan tarafların (hizmet ve istemci) kimliğinin doğrulandığından ve oturumda değiştirilen iletilerin değiştirilmediğinden emin olmak için önemlidir. Ayrıca, her bir güvenilir oturumun bütünlüğünü sağlamak önemlidir. Güvenilir bir oturum, bir güvenlik oturumu kanalı tarafından temsil edilen ve yönetilen bir güvenlik bağlamına bağlanarak güvenli hale getirilir. Güvenlik kanalı bir güvenlik oturumu sağlar. Oturum kurulumu sırasında değiştirilen güvenlik belirteçleri daha sonra güvenilir oturumdaki iletilerin güvenliğini sağlamak için kullanılır.
TCP-S üzerinden güvenilir bir oturum olduğunda, TCP oturumu güvenilir oturuma bağlanır. Bu nedenle, taşıma güvenliği, güvenliğin güvenilir bir oturuma bağlı olmasını sağlamaktadır. Bu durumda, bağlantının yeniden kurulması kapatılır.
Tek özel durum HTTPS kullanmaktır. Güvenli Yuva Katmanı (SSL) oturumu güvenilir oturuma bağlı değildir. Güvenlik bağlamını paylaşan oturumlar (SSL oturumu) birbirinden korunmadığından bu bir tehdit oluşturur; bu, uygulamaya bağlı olarak gerçek bir tehdit olabilir veya olmayabilir.
Güvenilir oturumları kullanma
WCF güvenilir oturumlarını kullanmak için, güvenilir oturumu destekleyen bağlamaya sahip bir uç nokta oluşturun. WCF'nin güvenilir oturum etkin olarak sağladığı sistem tarafından sağlanan bağlamalardan birini kullanın veya bunu yapmak için kendi özel bağlamanızı oluşturun.
Güvenilir oturumu varsayılan olarak destekleyen ve etkinleştiren sistem tanımlı bağlamalar şunlardır:
Güvenilir bir oturumu seçenek olarak destekleyen ancak varsayılan olarak etkinleştirmeyen sistem tarafından sağlanan bağlamalar şunlardır:
Özel bağlama oluşturma örneği için bkz . Nasıl yapılır: HTTPS ile Özel Güvenilir Oturum Bağlaması Oluşturma.
Güvenilir oturumları destekleyen WCF bağlamalarıyla ilgili bir tartışma için bkz. System-Provided Bağlamaları.
Güvenilir oturumların ne zaman kullanılacağı
Uygulamanızda güvenilir oturumların ne zaman kullanılacağını anlamanız önemlidir. WCF, aynı anda etkin ve canlı olan uç noktalar arasında güvenilir oturumları destekler. Uygulamanız, uç noktalardan birinin bir süre kullanılamaz olmasını gerektiriyorsa güvenilirlik elde etmek için kuyrukları kullanın.
Senaryo TCP üzerinden bağlı iki uç nokta gerektiriyorsa, TCP güvenilir ileti alışverişleri sağlamak için yeterli olabilir. Ancak, TCP paketlerin sırayla ve yalnızca bir kez gelmesini sağladığından, güvenilir bir oturum kullanmak gerekli değildir.
Senaryonuz aşağıdaki özelliklerden herhangi birine sahipse, güvenilir bir oturum kullanmayı ciddi şekilde göz önünde bulundurmanız gerekir.
SOAP yönlendiricileri gibi SOAP aracıları
Proxy aracılar veya taşıma köprüleri
Aralıklı bağlantı
HTTP üzerinden oturumlar