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.
İlişkilendirme, iş akışı hizmet iletilerini birbiriyle veya uygulama örneği durumuyla ilişkilendirme mekanizmasıdır; bu durumda bir ilk isteğe verilen yanıt ya da bir sipariş işleme iş akışının kalıcı durumuna belirli bir sipariş kimliği bağlanır. Bu konu, bağıntıya genel bir bakış sağlar. Bu bölümdeki diğer konular, her bağıntı türü için ek bilgi sağlar.
Bağıntı Türleri
Bağıntı protokol tabanlı veya içerik tabanlı olabilir. Protokol tabanlı bağıntılar, iletiler arasındaki eşlemeyi sağlamak için ileti teslim altyapısı tarafından sağlanan verileri kullanır. Protokol tabanlı bağıntı kullanılarak bağıntılı iletiler, bellekteki bir nesne kullanılarak (örneğin RequestContext, veya aktarım protokolü tarafından sağlanan bir belirteçle) birbirleriyle ilişkilendirilir. İçerik tabanlı bağıntılar, uygulama tarafından belirtilen verileri kullanarak iletileri birbiriyle ilişkilendirebilir. İçerik tabanlı bağıntı kullanılarak bağıntılı iletiler, iletideki müşteri numarası gibi bazı uygulama tanımlı veriler tarafından birbiriyle ilişkilendirilir.
Bağıntıya katılan etkinlikler, mesajlaşma etkinliklerini birbirine bağlamak için bir CorrelationHandle kullanır. Örneğin, bir hizmeti çağırmak için kullanılan bir Send ile hizmetten geri çağrı almak için kullanılan bir sonraki Receive, aynı CorrelationHandle'yi paylaşır. Bu temel desen, bağıntının içerik tabanlı mı yoksa protokol tabanlı mı olduğu fark etmeksizin kullanılır. Her etkinlikte bağıntı tutamacı açıkça ayarlanabilir veya etkinlikler bir CorrelationScope etkinliği içinde yer alabilir. CorrelationScope içinde bulunan etkinliklerin bağıntı tanıtıcıları, CorrelationScope tarafından yönetilir ve CorrelationHandle ayarının açıkça yapılmasını gerektirmez. Bir CorrelationScope kapsam, bir istek-yanıt bağıntısı ve ek bir bağıntı türü için CorrelationHandle yönetim sağlar. WorkflowServiceHost kullanılarak barındırılan iş akışı hizmetleri, CorrelationScope etkinliğiyle aynı varsayılan bağıntı yönetimine sahiptir. Bu varsayılan bağıntı yönetimi, genellikle birçok senaryoda, bir CorrelationScope veya iş akışı hizmetindeki mesajlaşma etkinliklerinin, paralel olarak iki CorrelationHandle etkinliğinin olması veya, iki Receive etkinliğini iki Send etkinliğinin takip ettiği durumlar gibi, birden fazla mesajlaşma etkinliği paralel çalışmadığı veya çakışmadığı sürece, Receive kümesine ihtiyaç duymadığı anlamına gelir. Varsayılan bağıntı hakkında daha fazla bilgi, bu bölümdeki her bir bağıntı türünü kapsayan konularda sağlanır. Mesajlaşma etkinlikleri hakkında daha fazla bilgi için bkz. Mesajlaşma Etkinlikleri ve Nasıl yapılır: Mesajlaşma Etkinlikleri ile İş Akışı Hizmeti Oluşturma.
Protocol-Based Bağıntı
Protokol tabanlı bağıntı, iletileri birbiriyle ve uygun örnekle ilişkilendirmek için aktarım mekanizmasını kullanır. Sistem tarafından sağlanan bazı protokol bağıntıları istek-yanıt bağıntısını ve bağlam tabanlı bağıntıyı içerir. İstek-yanıt bağıntısı, bir çift mesajlaşma etkinliğini ilişkilendirerek iki yönlü bir işlem oluşturmak için kullanılır; örneğin, Send ile ReceiveReply veya Receive ile SendReply eşleştirildiğinde. Visual Studio İş Akışı Tasarımcısı, bu düzeni hızla uygulamak için bir etkinlik şablonları kümesi de sağlar. Bağlam tabanlı bağıntı, .NET Bağlam Değişimi Protokolü Belirtimi'nde açıklanan bağlam değişimi mekanizmasını temel alır. Bağlam tabanlı bağıntıyı kullanmak için, gibi BasicHttpContextBindingWSHttpContextBinding bağlam tabanlı bir bağlama veya NetTcpContextBinding uç noktada kullanılmalıdır.
Protokol bağıntısı hakkında daha fazla bilgi için Dayanıklı Duplex ve İstek-Yanıt belgelerine bakın. Visual Studio İş Akışı Tasarımcısı etkinlik şablonlarını kullanma hakkında daha fazla bilgi için bkz. Mesajlaşma Etkinlikleri. Örnek kod için bkz. NetContextExchangeCorrelation örneği.
İçerik Tabanlı Bağıntı
İçerik tabanlı bağıntı, iletideki bazı bilgileri belirli bir örnekle ilişkilendirmek için kullanır. Protokol tabanlı bağıntıdan farklı olarak, içerik tabanlı bağıntı, uygulama yazarının bu verilerin ilgili her iletide nerede bulunabileceğini açıkça belirtmesini gerektirir. İçerik tabanlı bağıntı kullanan etkinlikler, MessageQuerySetkullanarak bu ileti verilerini belirtir. İçerik tabanlı bağıntı, gibi BasicHttpContextBindingbağlam bağlamalarından birini kullanmayan hizmetlerle iletişim kurarken kullanışlıdır.