Bagaimana menulis dan membaca dari Microsoft pesan antrian Server dalam Visual Basic 2005 atau Visual Basic.NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 315698 - Melihat produk di mana artikel ini berlaku.
Artikel ini telah diarsipkan. Artikel ditawarkan dalam bentuk "apa adanya" dan tidak akan dapat diperbarui lagi.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini menjelaskan cara membuat pesan dan kirimkan Microsoft pesan server antrian dalam aplikasi Windows. Artikel ini juga menjelaskan cara untuk membaca dari antrian swasta dan deserialize pesan isi untuk ditampilkan.

Persyaratan

Daftar berikut menguraikan fitur perangkat keras, perangkat lunak, jaringan infrastruktur, dan paket layanan yang Anda butuhkan:
  • Windows 2000 Professional (atau Server), atau Windows XP Profesional (atau Server), dengan Microsoft pesan antrian Server diinstal. Microsoft pesan antrian Server disertakan sebagai pilihan pada empat operasi sistem.
Artikel ini mengasumsikan bahwa Anda sudah familiar dengan topik-topik berikut:
  • Microsoft pesan antrian Server
  • Penggunaan alat-alat dari perintah prompt

Menulis dan membaca dari Microsoft pesan antrian Server

The System.Messaging namespaces di Microsoft.NET Framework memiliki kelas yang diperlukan untuk membaca dan menulisi ke Microsoft pesan antrian Server. Ikuti langkah-langkah untuk membuat sebuah aplikasi Windows kecil yang meniru tagihan yang online sistem pembayaran:
  1. Mulai Microsoft Visual Studio 2005 atau Microsoft Visual Studio.NET.
  2. Membuat aplikasi Windows baru dalam Visual Basic 2005 atau dalam Visual Basic.NET, dan kemudian nama itu MSMQ.
  3. Jika solusi Explorer tidak ditampilkan, tekan CTRL + ALT + L untuk menampilkannya.
  4. Dalam solusi Explorer, klik kanan Referensi, kemudian pilih Menambahkan referensi. Pada .NET tab, menemukan berkas System.Message.dll di daftar berkas .dll. Klik Pilih untuk memilih file, kemudian klik Oke.

    Catatan Pada Visual Studio 2005, Anda tidak perlu klik Pilih.
  5. Form1.VB sekarang terbuka di Desain Lihat. Jika tidak terbuka, double-klik Form1.VB dalam Explorer solusi.
  6. Tekan CTRL + ALT + X untuk membuka toolbox. Dalam toolbox, Pilih Windows Forms. (Dalam Visual Studio 2005, pilih Semua Windows Forms.) Pilih dan seret berikut ke tengah bentuk: empat baris masing-masing Label diikuti oleh Textbox (diposisikan di sebelah kanan masing-masing label). Di bawah ini, tambahkan dua Tombol. Tekan F4 untuk mengakses Properti Halaman untuk setiap kontrol. Perubahan Teks properti untuk label berikut (dalam urutan):
    • Membayar untuk:
    • Namamu:
    • Jumlah:
    • Tanggal:
    Mengubah teks tombol pertama untuk Kirim Pembayaran, dan kemudian mengubah teks tombol kedua untukProses pembayaran.
  7. Menambahkan dua Impor pernyataan di atas Deklarasi kelas untuk menyertakan tambahan kelas yang berada di System.Messaging dan System.text namespaces. The System.text namespace adalah untuk penggunaan StringBuilder kelas, yang baru.NET Framework kelas terbaik untuk digunakan ketika Anda menggabungkan string:
    Imports System.Messaging
    Imports System.Text
    						
  8. Aplikasi ini bekerja dengan antrian pribadi yang Anda harus pertama membuat di konsol manajemen komputer. Pada desktop, klik kanan Komputer Saya, lalu klik Mengelola. Memperluas Layanan dan aplikasi Untuk menemukan Pesan antrian.

    Catatan Jika Anda tidak menemukan Pesan antrianServer antrian pesan ini tidak diinstal.

    Klik kanan Swasta antrian, arahkan ke Baru, lalu klik Swasta antrian. Nama antrian BillPay. Meninggalkan Buka konsol manajemen komputer, karena Anda kembali ke kemudian untuk melihat pesan. Jangan pilih Membuat antrian transaksional kotak centang.
  9. Seperti disebutkan sebelumnya dalam artikel ini, sampel ini aplikasi meniru layanan pembayaran online tagihan. Oleh karena itu, membuat struktur yang berisi variabel untuk menyimpan data yang mendefinisikan pembayaran:
    Public Structure Payment
    Public Payor As String
    Public Payee As String
    Public DueDate As Date
    Public Amount As Integer
    End Structure
    					
  10. Klik Form1.VB (desain) tab di atas jendela editor untuk kembali ke Desain Lihat. Klik dua kali Mengirim pembayaran tombol. Titik penyisipan adalah sekarang di Button1_Click event handler di Form1.vb. Tugas pertama dalam rutin ini adalah untuk mengatur properti struktur untuk nilai-nilai elemen form:
          Dim myPayment As Payment
          With myPayment
          	.Payor = TextBox1.Text
          	.Payee = TextBox2.Text
          	.Amount = CInt(TextBox3.Text)
          	.DueDate = CType(TextBox4.Text, Date)
          End With
    					
  11. Membuat sebuah instance dari Pesan kelas, dan kemudian menetapkan Tubuh properti untuk struktur pembayaran:
    Dim msg As Message = New Message()
    msg.Body = myPayment
    					
  12. Untuk mengirim pesan ke Server antrian Microsoft pesan, langkah terakhir adalah untuk membuat sebuah instance dari MessageQueue kelas dan untuk memanggil Kirim metode, melewati dalam Pesan objek. The MessageQueue kelas adalah pembungkus yang mengelola interaksi dengan Microsoft Pesan antrian Server.

    Catatan sintaks untuk membuat jalan ke antrian pribadi yang dibuat di komputer Konsol manajemen. Antrian pribadi mengambil bentuk machinename\Private$ \queuename. Localhost mesin direferensikan dengan. ( titik atau periode).
    Dim msgQ As New MessageQueue(".\Private$\billpay")
    msgQ.Send(msg)
    						
    Kode ini sekarang di tempat untuk mengirim pesan ke Microsoft pesan antrian Server. The.NET Framework yang secara otomatis serializes pesan dengan menggunakan XMLMessageFormatter objek, yang secara implisit dibuat ketika mengirim pesan.
  13. Membuat lain Klik tombol event handler untuk Button2, yang menerima dan "proses" pembayaran pesan yang dikirim dalam Button1 event handler. Baris pertama adalah sama dengan yang Anda hanya melihat di pertama event handler:
    Dim msgQ As New MessageQueue(".\Private$\BillPay")
    					
  14. Membuat sebuah array dari jenis untuk lulus untuk XMLMessageFormatter kelas. Perhatikan bahwa kelas ini harus secara eksplisit diciptakan ketika menerima pesan. Konstruktor yang mengambil baik string macam jenis nama atau, lebih sebaiknya, array tipe jenis:
    Dim arrTypes(1) As System.Type
    arrTypes(0) = GetType(Payment)
    arrTypes(1) = GetType(Object)
    msgQ.Formatter = New XmlMessageFormatter(arrTypes)
    Dim myPayment As Payment = CType(msgQ.Receive.Body, Payment)
    						
    Jenis ini memberitahu XMLMessageFormatter Bagaimana deserialize pesan.
  15. Pesan yang diterima oleh memanggil Menerima metode. Akses Tubuh properti untuk membaca isi pesan. Properti ini kembali objek, sehingga harus dilemparkan ke jenis pembayaran untuk mengambil isi formulir dapat digunakan:
            	Dim sb As New StringBuilder()
            	sb.Append("Payment paid to: " & myPayment.Payor)
            	sb.Append(vbCrLf)
            	sb.Append("Paid by: " & myPayment.Payee)
            	sb.Append(vbCrLf)
            	sb.Append("Amount: $" & myPayment.Amount.ToString)
            	sb.Append(vbCrLf)
            	sb.Append("Due Date: " & myPayment.DueDate.ToShortDateString)
    					
  16. Membuat kotak pesan untuk menampilkan hasil:
    MessageBox.Show(sb.ToString, "Message Received!")
    					

Daftar kode lengkap (Form1.vb)

Imports System.Messaging
Imports System.Text

Public Class Form1
    Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "

    Public Sub New()
        MyBase.New()

        'This call is required by the Windows Form Designer.
        InitializeComponent()

        'Add any initialization after the InitializeComponent() call.

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
    Friend WithEvents Button2 As System.Windows.Forms.Button
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents TextBox2 As System.Windows.Forms.TextBox
    Friend WithEvents Label2 As System.Windows.Forms.Label
    Friend WithEvents TextBox3 As System.Windows.Forms.TextBox
    Friend WithEvents Label3 As System.Windows.Forms.Label
    Friend WithEvents Label4 As System.Windows.Forms.Label
    Friend WithEvents TextBox4 As System.Windows.Forms.TextBox

    'Required by the Windows Form Designer.
    Private components As System.ComponentModel.Container

    'NOTE: The following procedure is required by the Windows Form Designer.
    'It can be modified by using the Windows Form Designer.  
    'Do not modify it by using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button
        Me.Button2 = New System.Windows.Forms.Button
        Me.TextBox1 = New System.Windows.Forms.TextBox
        Me.Label1 = New System.Windows.Forms.Label
        Me.TextBox2 = New System.Windows.Forms.TextBox
        Me.Label2 = New System.Windows.Forms.Label
        Me.TextBox3 = New System.Windows.Forms.TextBox
        Me.Label3 = New System.Windows.Forms.Label
        Me.Label4 = New System.Windows.Forms.Label
        Me.TextBox4 = New System.Windows.Forms.TextBox
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(104, 160)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(88, 23)
        Me.Button1.TabIndex = 1
        Me.Button1.Text = "Send Payment"
        '
        'Button2
        '
        Me.Button2.Location = New System.Drawing.Point(96, 200)
        Me.Button2.Name = "Button2"
        Me.Button2.Size = New System.Drawing.Size(104, 23)
        Me.Button2.TabIndex = 3
        Me.Button2.Text = "Process Payment"
        '
        'TextBox1
        '
        Me.TextBox1.Location = New System.Drawing.Point(128, 46)
        Me.TextBox1.Name = "TextBox1"
        Me.TextBox1.TabIndex = 2
        Me.TextBox1.Text = ""
        '
        'Label1
        '
        Me.Label1.Location = New System.Drawing.Point(71, 48)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(48, 23)
        Me.Label1.TabIndex = 4
        Me.Label1.Text = "Pay To:"
        '
        'TextBox2
        '
        Me.TextBox2.Location = New System.Drawing.Point(128, 72)
        Me.TextBox2.Name = "TextBox2"
        Me.TextBox2.TabIndex = 2
        Me.TextBox2.Text = ""
        '
        'Label2
        '
        Me.Label2.Location = New System.Drawing.Point(52, 74)
        Me.Label2.Name = "Label2"
        Me.Label2.Size = New System.Drawing.Size(72, 23)
        Me.Label2.TabIndex = 4
        Me.Label2.Text = "Your Name:"
        '
        'TextBox3
        '
        Me.TextBox3.Location = New System.Drawing.Point(128, 96)
        Me.TextBox3.Name = "TextBox3"
        Me.TextBox3.TabIndex = 2
        Me.TextBox3.Text = ""
        '
        'Label3
        '
        Me.Label3.Location = New System.Drawing.Point(70, 99)
        Me.Label3.Name = "Label3"
        Me.Label3.Size = New System.Drawing.Size(48, 23)
        Me.Label3.TabIndex = 4
        Me.Label3.Text = "Amount:"
        '
        'Label4
        '
        Me.Label4.Location = New System.Drawing.Point(60, 124)
        Me.Label4.Name = "Label4"
        Me.Label4.Size = New System.Drawing.Size(59, 23)
        Me.Label4.TabIndex = 4
        Me.Label4.Text = "Due Date:"
        '
        'TextBox4
        '
        Me.TextBox4.Location = New System.Drawing.Point(128, 120)
        Me.TextBox4.Name = "TextBox4"
        Me.TextBox4.TabIndex = 2
        Me.TextBox4.Text = ""
        '
        'Form1
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
        Me.ClientSize = New System.Drawing.Size(292, 266)
        Me.Controls.AddRange(New System.Windows.Forms.Control() _
            {Me.Label4, Me.TextBox4, Me.TextBox3, Me.Label3, _
             Me.TextBox2, Me.Label2, Me.Label1, Me.Button2, _
             Me.TextBox1, Me.Button1})
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)

    End Sub

#End Region

    Private Sub Form1_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Public Structure Payment
        Public Payor As String
        Public Payee As String
        Public DueDate As Date
        Public Amount As Integer
    End Structure

    Private Sub Button1_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button1.Click

        Dim myPayment As Payment
        With myPayment
            .Payor = TextBox1.Text
            .Payee = TextBox2.Text
            .Amount = CInt(TextBox3.Text)
            .DueDate = CType(TextBox4.Text, Date)
        End With

        Dim msg As Message = New Message
        msg.Body = myPayment

        Dim msgQ As New MessageQueue(".\Private$\BillPay")
        msgQ.Send(msg)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles Button2.Click

        Dim msgQ As MessageQueue = New MessageQueue(".\Private$\BillPay")
        Dim arrTypes(1) As System.Type

        arrTypes(0) = GetType(Payment)
        arrTypes(1) = GetType(Object)

        msgQ.Formatter = New XmlMessageFormatter(arrTypes)

        Dim myPayment As Payment = CType(msgQ.Receive.Body, Payment)

        Dim sb As New StringBuilder
        sb.Append("Payment paid to: " & myPayment.Payor)
        sb.Append(vbCrLf)
        sb.Append("Paid by: " & myPayment.Payee)
        sb.Append(vbCrLf)
        sb.Append("Amount: $" & myPayment.Amount.ToString)
        sb.Append(vbCrLf)
        sb.Append("Due Date: " & myPayment.DueDate.ToShortDateString)

        MessageBox.Show(sb.ToString, "Message Received!")

    End Sub
End Class
				
CatatanAnda harus mengubah kode pada Visual Basic 2005. Secara default, Visual Basic menciptakan dua file untuk proyek ketika Anda membuat proyek Windows Forms. Jika bentuk bernama Form1, dua file yang mewakili bentuk yang bernama Form1.vb dan Form1.Designer.vb. Anda menulis kode dalam Form1.vb file. Windows Forms Designer menulis kode dalam Form1.Designer.vb file. Windows Forms Designer menggunakan kata kunci parsial untuk membagi pelaksanaan Form1 menjadi dua file terpisah. Perilaku ini mencegah kode yang dihasilkan desainer yang diselingi dengan kode Anda.

Untuk informasi lebih lanjut tentang kelas parsial dan Windows Forms Designer, kunjungi Web site Microsoft Developer Network (MSDN) berikut:
http://msdn2.Microsoft.com/en-us/library/ms171843.aspx

Verifikasi

  1. Tekan F5 untuk menjalankan aplikasi dalam modus Debug.
  2. Nilai-nilai tipe di masing-masing TextBox, lalu klik Mengirim pembayaran.
  3. Tekan ALT + TAB untuk kembali ke konsol manajemen komputer. Klik Antrian pesan folder di Swasta antrian di bawah BillPay, kemudian verifikasi bahwa Microsoft pesan antrian Server menerima pesan (ditunjukkan oleh Ikon amplop). Klik kanan pesan, pilih Properti, lalu klik Tubuh tab untuk memeriksa pesan.

    Catatan Isi pesan pembayaran adalah manga XML.
  4. Tekan ALT + TAB untuk kembali ke pembayaran tagihan Windows aplikasi. Klik Proses pembayaran tombol. Anda melihat kotak pesan yang mengkonfirmasi penerimaan pesan dan menampilkan pesan teks.

Pemecahan Masalah

  • Lupa untuk membuat antrian pribadi adalah biasanya masalah hanya pada Windows 2000 Professional dan Windows XP Professional. Windows 2000 Server dan Windows Server 2003 mengizinkan penggunaan antrian publik.
  • Lewat argumen yang benar untuk XMLMessageFormatter() dapat menjadi rumit. Dalam contoh ini, pengecualian dilemparkan jika baik objek atau Jenis pembayaran yang tidak termasuk dalam array tipe yang dilewatkan ke konstruktor.

REFERENSI

Untuk informasi lebih lanjut tentang Server antrian pesan Microsoft, kunjungi Website Microsoft berikut:
http://technet2.Microsoft.com/WindowsServer/en/Library/1bee1f48-e2e5-4880-ac6f-f65130a6fe611033.mspx?mfr=True

Properti

ID Artikel: 315698 - Kajian Terakhir: 24 Februari 2014 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Windows XP Professional
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows Server 2003 R2 Datacenter Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Enterprise Edition (32-Bit x86)
  • Microsoft Windows Server 2003 R2 Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
Kata kunci: 
kbnosurvey kbarchive kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB315698 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:315698

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com