BinaryServerFormatterSink.ProcessMessage Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Meminta pemrosesan pesan dari sink saat ini.
public:
virtual System::Runtime::Remoting::Channels::ServerProcessing ProcessMessage(System::Runtime::Remoting::Channels::IServerChannelSinkStack ^ sinkStack, System::Runtime::Remoting::Messaging::IMessage ^ requestMsg, System::Runtime::Remoting::Channels::ITransportHeaders ^ requestHeaders, System::IO::Stream ^ requestStream, [Runtime::InteropServices::Out] System::Runtime::Remoting::Messaging::IMessage ^ % responseMsg, [Runtime::InteropServices::Out] System::Runtime::Remoting::Channels::ITransportHeaders ^ % responseHeaders, [Runtime::InteropServices::Out] System::IO::Stream ^ % responseStream);
public System.Runtime.Remoting.Channels.ServerProcessing ProcessMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack sinkStack, System.Runtime.Remoting.Messaging.IMessage requestMsg, System.Runtime.Remoting.Channels.ITransportHeaders requestHeaders, System.IO.Stream requestStream, out System.Runtime.Remoting.Messaging.IMessage responseMsg, out System.Runtime.Remoting.Channels.ITransportHeaders responseHeaders, out System.IO.Stream responseStream);
abstract member ProcessMessage : System.Runtime.Remoting.Channels.IServerChannelSinkStack * System.Runtime.Remoting.Messaging.IMessage * System.Runtime.Remoting.Channels.ITransportHeaders * System.IO.Stream * IMessage * ITransportHeaders * Stream -> System.Runtime.Remoting.Channels.ServerProcessing
override this.ProcessMessage : System.Runtime.Remoting.Channels.IServerChannelSinkStack * System.Runtime.Remoting.Messaging.IMessage * System.Runtime.Remoting.Channels.ITransportHeaders * System.IO.Stream * IMessage * ITransportHeaders * Stream -> System.Runtime.Remoting.Channels.ServerProcessing
Public Function ProcessMessage (sinkStack As IServerChannelSinkStack, requestMsg As IMessage, requestHeaders As ITransportHeaders, requestStream As Stream, ByRef responseMsg As IMessage, ByRef responseHeaders As ITransportHeaders, ByRef responseStream As Stream) As ServerProcessing
Parameter
- sinkStack
- IServerChannelSinkStack
Tumpukan sink saluran yang disebut sink saat ini.
- requestMsg
- IMessage
Pesan yang berisi permintaan.
- requestHeaders
- ITransportHeaders
Header yang diambil dari pesan masuk dari klien.
- requestStream
- Stream
Aliran yang perlu diproses dan diteruskan ke sink deserialisasi.
- responseMsg
- IMessage
Ketika metode ini kembali, berisi yang IMessage menyimpan pesan respons. Parameter ini diteruskan tanpa diinisialisasi.
- responseHeaders
- ITransportHeaders
Ketika metode ini kembali, berisi ITransportHeaders yang menyimpan header untuk ditambahkan ke pesan pengembalian yang menuju ke klien. Parameter ini diteruskan tanpa diinisialisasi.
- responseStream
- Stream
Ketika metode ini kembali, berisi Stream yang menuju ke sink transportasi. Parameter ini diteruskan tanpa diinisialisasi.
Mengembalikan
Nilai ServerProcessing status yang menyediakan informasi tentang bagaimana pesan diproses.
Penerapan
Keterangan
Tugas proksi adalah mengonversi panggilan metode yang dipanggil di dalamnya menjadi pesan. Pesan, yang mengimplementasikan IMessage antarmuka, diteruskan dari ujung klien ke ujung server dengan memanggil ProcessMessage objek sink pesan. Sink pesan dirangkai bersama-sama, yang berarti bahwa setiap sink pesan bertanggung jawab untuk memanggil ProcessMessage pada sink pesan berikutnya setelah sink pesan saat ini menyelesaikan pekerjaannya. Misalnya, sink pesan terkait sinkronisasi dapat menyebabkan kunci diperoleh atau dirilis dan didelegasikan ke sink pesan hilir.
Ketika sink saluran pemformat mendapatkan pesan yang perlu dikirim melalui saluran, sink SyncProcessMessagememanggil , meneruskan pesan sebagai parameter. Sink formatter kemudian membuat array header transportasi dan panggilan GetRequestStream pada sink formatter. Panggilan ini diteruskan ke rantai sink, dan sink apa pun dapat membuat aliran permintaan yang akan diteruskan kembali ke sink pemformat. Setelah panggilan ini kembali, pesan diserialisasikan, ProcessMessage dipanggil pada rantai pertama dalam rantai sink, dan pesan diteruskan ke sink saluran.
Setelah sink saluran mendapatkan pesan, mereka dapat menulis data ke aliran, menambahkan header ke array header, dan menambahkan diri mereka ke tumpukan sink sebelum meneruskan panggilan ke sink berikutnya. Ketika panggilan mencapai sink transportasi di akhir rantai, sink transportasi mengirim header dan pesan berseri melalui saluran ke server, tempat proses dibalik.
Ketika pesan sampai ke sisi server, sink transportasi mengambil header dan pesan berseri dari aliran dan meneruskan ini melalui rantai sink sampai sink formatter tercapai. Sink formatter kemudian mendeserialisasi pesan dan meneruskannya ke infrastruktur jarak jauh. Kemudian, infrastruktur jarak jauh mengubah pesan menjadi panggilan metode, dan memanggil objek server.