Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Korelasi adalah mekanisme untuk menghubungkan pesan layanan alur kerja satu sama lain atau ke status instans aplikasi, seperti balasan ke permintaan awal, atau ID pesanan tertentu ke status alur kerja pemrosesan pesanan yang dipertahankan. Topik ini memberikan gambaran umum korelasi. Topik lain di bagian ini menyediakan informasi tambahan untuk setiap jenis korelasi.
Jenis Korelasi
Korelasi dapat berbasis protokol atau berbasis konten. Korelasi berbasis protokol menggunakan data yang disediakan oleh infrastruktur pengiriman pesan untuk menyediakan pemetaan antar pesan. Pesan yang berkorelasi menggunakan korelasi berbasis protokol terkait satu sama lain menggunakan objek dalam memori, seperti RequestContext, atau oleh token yang disediakan oleh protokol transportasi. Korelasi berbasis konten menghubungkan pesan satu sama lain menggunakan data yang ditentukan aplikasi. Pesan yang berkorelasi menggunakan korelasi berbasis konten terkait satu sama lain oleh beberapa data yang ditentukan aplikasi dalam pesan, seperti nomor pelanggan.
Aktivitas yang berpartisipasi dalam korelasi menggunakan CorrelationHandle untuk mengaitkan aktivitas olahpesan. Misalnya, Send yang digunakan untuk memanggil layanan dan Receive berikutnya yang digunakan untuk menerima panggilan balik dari layanan, berbagi CorrelationHandle yang sama. Pola dasar ini digunakan apakah korelasi berbasis konten atau berbasis protokol. Handle korelasi dapat diatur secara eksplisit pada setiap aktivitas, atau aktivitas-aktivitas tersebut dapat dimasukkan ke dalam satu aktivitas CorrelationScope. Aktivitas yang terkandung dalam CorrelationScope memiliki handle korelasi yang dikelola oleh CorrelationScope dan tidak memerlukan CorrelationHandle untuk diatur secara eksplisit. CorrelationScope Cakupan menyediakan CorrelationHandle manajemen untuk korelasi balasan permintaan dan satu jenis korelasi tambahan. Layanan alur kerja yang dihosting menggunakan WorkflowServiceHost memiliki manajemen korelasi default yang sama dengan CorrelationScope aktivitas. Manajemen korelasi default ini umumnya berarti bahwa dalam banyak skenario, aktivitas olahpesan dalam layanan alur kerja CorrelationScope tidak memerlukan pengaturan CorrelationHandle mereka kecuali jika terdapat beberapa aktivitas olahpesan yang berjalan secara paralel atau tumpang tindih, seperti dua aktivitas Receive yang berjalan secara paralel, atau dua aktivitas Send yang diikuti oleh dua aktivitas Receive. Informasi selengkapnya tentang korelasi default disediakan dalam topik di bagian ini yang mencakup setiap jenis korelasi tertentu. Untuk informasi selengkapnya tentang aktivitas olahpesan, lihat Aktivitas Olahpesan dan Cara: Membuat Layanan Alur Kerja dengan Aktivitas Olahpesan.
Korelasi Protocol-Based
Korelasi berbasis protokol menggunakan mekanisme transportasi untuk menghubungkan pesan satu sama lain dan instans yang sesuai. Beberapa korelasi protokol yang disediakan sistem termasuk korelasi balasan permintaan dan korelasi berbasis konteks. Korelasi respons dan permintaan digunakan untuk mengaitkan satu pasang aktivitas olahpesan menjadi operasi dua arah, seperti Send dan ReceiveReply, atau Receive dan SendReply. Desainer Alur Kerja Visual Studio juga menyediakan serangkaian templat aktivitas untuk menerapkan pola ini dengan cepat. Korelasi berbasis konteks didasarkan pada mekanisme pertukaran konteks yang dijelaskan dalam Spesifikasi Protokol Pertukaran Konteks .NET. Untuk menggunakan korelasi berbasis konteks, pengikatan berbasis konteks seperti BasicHttpContextBinding, WSHttpContextBinding atau NetTcpContextBinding harus digunakan pada titik akhir.
Untuk informasi selengkapnya tentang korelasi protokol, lihat Durable Duplex dan Request-Reply. Untuk informasi selengkapnya tentang menggunakan templat aktivitas Visual Studio Workflow Designer, lihat Aktivitas Olahpesan. Untuk kode sampel, lihat sampel NetContextExchangeCorrelation .
Korelasi Berbasis Konten
Korelasi berbasis konten menggunakan beberapa informasi dalam pesan untuk mengaitkannya ke instans tertentu. Tidak seperti korelasi berbasis protokol, korelasi berbasis konten mengharuskan penulis aplikasi untuk secara eksplisit menyatakan di mana data ini dapat ditemukan di setiap pesan terkait. Aktivitas yang menggunakan korelasi berbasis konten menentukan data pesan ini dengan menggunakan MessageQuerySet. Korelasi berbasis konten berguna saat berkomunikasi dengan layanan yang tidak menggunakan salah satu pengikatan konteks seperti BasicHttpContextBinding.