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.
Sampel SRMP menunjukkan cara melakukan komunikasi antrean yang ditransaksikan dengan menggunakan Message Queuing (MSMQ) melalui HTTP.
Dalam komunikasi antrian, klien berkomunikasi dengan layanan menggunakan antrian. Lebih tepatnya, klien mengirim pesan ke daftar antrian. Layanan menerima pesan dari antrean. Oleh karena itu, layanan dan klien tidak harus beroperasi pada saat yang bersamaan untuk berkomunikasi menggunakan antrean.
MSMQ memungkinkan penggunaan HTTP (termasuk penggunaan HTTPS) untuk mengirim pesan ke antrean. Dalam contoh ini, kami menunjukkan menggunakan komunikasi antrean Windows Communication Foundation (WCF) dan cara mengirim pesan melalui HTTP. MSMQ menggunakan protokol yang disebut SRMP, yang merupakan protokol berbasis SOAP untuk komunikasi melalui HTTP.
Untuk menyiapkan, mengompilasi, dan menjalankan sampel
Pastikan Anda telah melakukan Prosedur Penyiapan One-Time untuk Sampel Windows Communication Foundation.
Untuk membangun solusi edisi C# atau Visual Basic .NET, ikuti instruksi di Membangun Sampel Windows Communication Foundation.
Untuk menjalankan sampel dalam konfigurasi satu atau lintas komputer, ikuti instruksi di Menjalankan Sampel Windows Communication Foundation.
Sebelum menjalankan sampel di Tambahkan/Hapus Komponen Windows, pastikan bahwa MSMQ diinstal dengan dukungan HTTP. Menginstal dukungan HTTP secara otomatis menginstal Internet Information Services (IIS) dan menambahkan dukungan protokol di IIS untuk MSMQ.
Jika Anda ingin yakin bahwa HTTP digunakan untuk komunikasi, Anda dapat mengaktifkan MSMQ untuk berjalan dalam mode diperkeras. Ini memastikan bahwa tidak ada pesan ke antrean mana pun yang dihosting di mesin ini dapat tiba dengan menggunakan transportasi apa pun selain HTTP.
Setelah Anda memilih MSMQ untuk berjalan dalam mode diperkeras, komputer memerlukan boot ulang pada Windows Server 2003.
Jalankan layanan.
Jalankan klien. Pastikan Anda mengubah alamat titik akhir untuk menunjuk ke nama mesin atau alamat IP alih-alih localhost. Klien mengirim pesan dan keluar.
Persyaratan
Untuk menjalankan sampel ini, IIS harus diinstal pada layanan dan komputer klien selain MSMQ.
Menunjukkan
Sampel menunjukkan pengiriman pesan antrean WCF menggunakan MSMQ melalui HTTP. Ini juga disebut pesan SRMP. Ketika pesan antrean dikirim, MSMQ pada mesin pengirim mentransfer pesan ke manajer antrean penerima melalui transportasi TCP atau HTTP. Dengan memilih SRMP, pengguna menunjukkan pilihan HTTP sebagai transportasi untuk transfer antrean. SRMP Secure memungkinkan penggunaan HTTPS.
Contoh
Kode sampel didasarkan pada sampel yang ditransaksikan. Cara Anda mengirim pesan ke antrean dan menerima pesan dari antrean menggunakan SRMP sama dengan mengirim dan menerima pesan menggunakan protokol Asli.
Konfigurasi untuk klien diubah untuk menunjukkan pilihan protokol transfer antrean. Protokol transfer antrean dapat berupa salah satu dari Native, SRMP atau SrmpSecure. Secara bawaan, protokol transfer adalah Native. Klien dan layanan menentukan dalam konfigurasi untuk menggunakan SRMP dalam contoh ini.
Ada batasan untuk SRMP dalam kaitannya dengan keamanan transportasi. Keamanan transportasi MSMQ default memerlukan Direktori Aktif yang mengharuskan manajer antrean pengiriman dan manajer antrean penerima berada di domain Windows yang sama. Ini tidak dimungkinkan ketika mengirim pesan melalui batas HTTP. Dengan demikian, keamanan transportasi default tidak berfungsi. Keamanan transportasi harus diatur ke Sertifikat jika keamanan transportasi diinginkan. Keamanan pesan juga dapat digunakan untuk mengamankan pesan. Dalam sampel ini, keamanan transportasi dan pesan dinonaktifkan untuk mengilustrasikan pesan SRMP.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<client>
<!-- Define NetMsmqEndpoint -->
<endpoint name="OrderProcessorEndpoint"
address=
"net.msmq://localhost/private/ServiceModelSamplesSrmp"
bindingConfiguration="srmpBinding"
binding="netMsmqBinding"
contract="IOrderProcessor" />
</client>
<bindings>
<netMsmqBinding>
<binding name="srmpBinding"
queueTransferProtocol="Srmp">
<security mode="None" />
</binding>
</netMsmqBinding>
</bindings>
</system.serviceModel>
</configuration>
Menjalankan sampel menghasilkan output berikut.
Processing Purchase Order: 556b70be-31ee-4a3b-8df4-ed5e538015a4
Customer: somecustomer.com
OrderDetails
Order LineItem: 54 of Blue Widget @unit price: $29.99
Order LineItem: 890 of Red Widget @unit price: $45.89
Total cost of this order: $42461.56
Order status: Pending