ChannelDispatcher Kelas
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.
Komponen yang menerima saluran dan mengaitkannya dengan layanan.
public ref class ChannelDispatcher : System::ServiceModel::Dispatcher::ChannelDispatcherBase
public class ChannelDispatcher : System.ServiceModel.Dispatcher.ChannelDispatcherBase
type ChannelDispatcher = class
inherit ChannelDispatcherBase
Public Class ChannelDispatcher
Inherits ChannelDispatcherBase
- Warisan
Contoh
Uri baseAddress = new Uri("http://localhost:8001/Simple");
ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);
serviceHost.AddServiceEndpoint(
typeof(ICalculator),
new WSHttpBinding(),
"CalculatorServiceObject");
// Enable MEX.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
serviceHost.Description.Behaviors.Add(smb);
serviceHost.Open();
IChannelListener icl = serviceHost.ChannelDispatchers[0].Listener;
ChannelDispatcher dispatcher = new ChannelDispatcher(icl);
Console.WriteLine("servicehost has {0} ChannelDispatchers", serviceHost.ChannelDispatchers.Count);
ChannelDispatcherCollection dispatchers = serviceHost.ChannelDispatchers;
foreach (ChannelDispatcher disp in dispatchers)
{
Console.WriteLine("Binding name: " + disp.BindingName);
}
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();
Dim baseAddress As New Uri("http://localhost:8001/Simple")
Dim serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
serviceHost.AddServiceEndpoint(GetType(ICalculator), New WSHttpBinding(), "CalculatorServiceObject")
' Enable MEX.
Dim smb As New ServiceMetadataBehavior()
smb.HttpGetEnabled = True
serviceHost.Description.Behaviors.Add(smb)
serviceHost.Open()
Dim icl As IChannelListener = serviceHost.ChannelDispatchers(0).Listener
Dim dispatcher As New ChannelDispatcher(icl)
Console.WriteLine("servicehost has {0} ChannelDispatchers", serviceHost.ChannelDispatchers.Count)
Dim dispatchers As ChannelDispatcherCollection = serviceHost.ChannelDispatchers
For Each disp As ChannelDispatcher In dispatchers
Console.WriteLine("Binding name: " & disp.BindingName)
Next disp
Console.WriteLine("The service is ready.")
Console.WriteLine("Press <ENTER> to terminate service.")
Console.WriteLine()
Console.ReadLine()
' Close the ServiceHostBase to shutdown the service.
serviceHost.Close()
Keterangan
Objek ChannelDispatcher mengaitkan IChannelListener pada URI tertentu (disebut URI mendengarkan) dengan instans layanan. Setiap ServiceHost objek dapat memiliki banyak ChannelDispatcher objek, masing-masing terkait dengan pendengar yang berbeda dan mendengarkan URI untuk layanan tersebut.
Saat pesan tiba,ChannelDispatcher mengkueri masing-masing objek EndpointDispatcher terkait apakah titik akhir dapat menerima pesan, dan meneruskan pesan kepada objek. Objek EndpointDispatcher bertanggung jawab untuk memproses pesan dari ChannelDispatcher ketika alamat tujuan pesan cocok dengan AddressFilter properti dan tindakan pesan cocok dengan ContractFilter properti .
Semua properti yang mengontrol masa pakai dan perilaku sesi saluran tersedia untuk inspeksi atau modifikasi pada objek ChannelDispatcher. Selain EndpointDispatcher, ini termasuk objek kustom IChannelInitializer , IChannelListener, ServiceHost, yang terkait dan InstanceContext.
Konstruktor
ChannelDispatcher(IChannelListener) |
Menginisialisasi instans baru kelas ChannelDispatcher. |
ChannelDispatcher(IChannelListener, String) |
Menginisialisasi instans baru kelas ChannelDispatcher. |
ChannelDispatcher(IChannelListener, String, IDefaultCommunicationTimeouts) |
Menginisialisasi instans baru kelas ChannelDispatcher. |
Properti
AsynchronousTransactedAcceptEnabled |
Mendapatkan nilai yang menunjukkan apakah panggilan metode terima yang ditransaksikan pada pendengar tidak sinkron. |
BindingName |
Mendapatkan nama pengikatan yang digunakan untuk mengonfigurasi layanan. |
ChannelInitializers |
Mendapatkan sekumpulan IChannelInitializer objek yang dapat Anda gunakan untuk memeriksa dan menambahkan status ke saluran saat pertama kali dibuat. |
DefaultCloseTimeout |
Mendapatkan interval waktu default yang diizinkan untuk ditutup oleh dispatcher saluran. |
DefaultOpenTimeout |
Mendapatkan interval waktu default yang diizinkan untuk membuka dispatcher saluran. |
Endpoints |
Mendapatkan dispatcher titik akhir yang meneruskan pesan ke titik akhir saluran. |
ErrorHandlers |
Mendapatkan sekumpulan IErrorHandler objek yang dapat digunakan untuk menyisipkan fungsionalitas penanganan kesalahan kustom untuk titik akhir. |
Host |
Mendapatkan host untuk layanan yang terkait dengan dispatcher. |
Host |
Ketika ditimpa di kelas turunan, mendapatkan host layanan yang terkait dengan dispatcher saluran. (Diperoleh dari ChannelDispatcherBase) |
IncludeExceptionDetailInFaults |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah akan menyertakan detail tentang pengecualian dalam kesalahan. |
IsDisposed |
Mendapatkan nilai yang menunjukkan apakah objek komunikasi telah dibuang. (Diperoleh dari CommunicationObject) |
IsTransactedAccept |
Mendapatkan nilai yang menunjukkan apakah panggilan metode terima pada pendengar dilakukan di bawah transaksi. |
IsTransactedReceive |
Mendapatkan nilai yang menunjukkan apakah panggilan metode penerima pada pendengar dilakukan di bawah transaksi. |
Listener |
Mendapatkan pendengar yang terkait dengan dispatcher saluran. |
ManualAddressing |
Mendapatkan atau menetapkan nilai yang menunjukkan apakah dispatcher saluran menambahkan header alamat ke pesan balasan permintaan. |
MaxPendingReceives |
Mendapatkan atau mengatur pesan maksimum yang tertunda per saluran. |
MaxTransactedBatchSize |
Mendapatkan atau mengatur ukuran maksimum untuk batch yang ditransaksikan. |
MessageVersion |
Mendapatkan atau mengatur pesan SOAP dan versi WS-Addressing yang digunakan atau diharapkan. |
ReceiveContextEnabled |
Mendapatkan atau mengatur apakah ReceiveContext diaktifkan. |
ReceiveSynchronously |
Mendapatkan atau menetapkan nilai yang menentukan apakah dispatcher menggunakan panggilan sinkron untuk membaca pesan dari saluran. |
SendAsynchronously |
Mendapatkan atau mengatur apakah pesan dikirim secara asinkron. |
ServiceThrottle |
Mendapatkan atau mengatur pembatasan layanan untuk layanan yang terkait dengan dispatcher saluran. |
State |
Mendapatkan nilai yang menunjukkan status objek komunikasi saat ini. (Diperoleh dari CommunicationObject) |
ThisLock |
Mendapatkan kunci yang saling eksklusif yang melindungi instans kelas selama transisi status. (Diperoleh dari CommunicationObject) |
TransactionIsolationLevel |
Mendapatkan atau mengatur tingkat isolasi default untuk transaksi. |
TransactionTimeout |
Mendapatkan atau menetapkan nilai yang menentukan batas waktu default untuk transaksi baru yang dibuat oleh dispatcher atas nama layanan. |
Metode
Abort() |
Menyebabkan objek komunikasi segera beralih dari statusnya saat ini ke status penutupan. (Diperoleh dari CommunicationObject) |
Attach(ServiceHostBase) |
Melampirkan dispatcher saluran ke host. |
Attach(ServiceHostBase) |
Saat ditimpa di kelas turunan, lampirkan dispatcher saluran ke host tertentu. (Diperoleh dari ChannelDispatcherBase) |
BeginClose(AsyncCallback, Object) |
Memulai operasi asinkron untuk menutup objek komunikasi. (Diperoleh dari CommunicationObject) |
BeginClose(TimeSpan, AsyncCallback, Object) |
Memulai operasi asinkron untuk menutup objek komunikasi dengan batas waktu yang ditentukan. (Diperoleh dari CommunicationObject) |
BeginOpen(AsyncCallback, Object) |
Memulai operasi asinkron untuk membuka objek komunikasi. (Diperoleh dari CommunicationObject) |
BeginOpen(TimeSpan, AsyncCallback, Object) |
Memulai operasi asinkron untuk membuka objek komunikasi dalam interval waktu tertentu. (Diperoleh dari CommunicationObject) |
Close() |
Menyebabkan objek komunikasi beralih dari statusnya saat ini ke status tertutup. (Diperoleh dari CommunicationObject) |
Close(TimeSpan) |
Menyebabkan objek komunikasi beralih dari statusnya saat ini ke status tertutup dalam interval waktu tertentu. (Diperoleh dari CommunicationObject) |
CloseInput() |
Menghentikan pendengar menerima saluran baru. |
Detach(ServiceHostBase) |
Melepaskan host layanan dari dispatcher saluran. |
Detach(ServiceHostBase) |
Ketika ditimpa di kelas turunan, melepaskan dispatcher saluran dari host tertentu. (Diperoleh dari ChannelDispatcherBase) |
EndClose(IAsyncResult) |
Menyelesaikan operasi asinkron untuk menutup objek komunikasi. (Diperoleh dari CommunicationObject) |
EndOpen(IAsyncResult) |
Menyelesaikan operasi asinkron untuk membuka objek komunikasi. (Diperoleh dari CommunicationObject) |
Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
Fault() |
Menyebabkan objek komunikasi beralih dari statusnya saat ini ke status rusak. (Diperoleh dari CommunicationObject) |
GetCommunicationObjectType() |
Mendapatkan jenis objek komunikasi. (Diperoleh dari CommunicationObject) |
GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
GetType() |
Mendapatkan dari instans Type saat ini. (Diperoleh dari Object) |
MemberwiseClone() |
Membuat salinan dangkal dari saat ini Object. (Diperoleh dari Object) |
OnAbort() |
Membatalkan pendengar yang terkait dengan dispatcher. |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
Memulai operasi asinkron untuk menutup pendengar saluran untuk dispatcher yang harus diselesaikan dalam interval waktu tertentu. |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Memulai operasi asinkron untuk membuka pendengar saluran untuk dispatcher yang harus diselesaikan dalam interval waktu tertentu. |
OnClose(TimeSpan) |
Menutup pendengar saluran yang terkait dengan dispatcher dalam interval waktu tertentu. |
OnCloseAsync(TimeSpan) |
Komponen yang menerima saluran dan mengaitkannya dengan layanan. |
OnCloseAsync(TimeSpan) |
Komponen yang menerima saluran dan mengaitkannya dengan layanan. (Diperoleh dari CommunicationObject) |
OnClosed() |
Menyediakan jejak penutupan dispatcher titik akhir yang terkait dengan dispatcher saluran. |
OnClosing() |
Dipanggil selama transisi objek komunikasi ke status penutupan. (Diperoleh dari CommunicationObject) |
OnEndClose(IAsyncResult) |
Menyelesaikan operasi asinkron untuk menutup pendengar saluran untuk dispatcher. |
OnEndOpen(IAsyncResult) |
Menyelesaikan operasi asinkron untuk membuka pendengar saluran untuk dispatcher. |
OnFaulted() |
Menyisipkan pemrosesan pada objek komunikasi setelah transisi ke status rusak karena pemanggilan operasi kesalahan sinkron. (Diperoleh dari CommunicationObject) |
OnOpen(TimeSpan) |
Membuka pendengar yang terkait dengan dispatcher saluran. |
OnOpenAsync(TimeSpan) |
Komponen yang menerima saluran dan mengaitkannya dengan layanan. |
OnOpenAsync(TimeSpan) |
Komponen yang menerima saluran dan mengaitkannya dengan layanan. (Diperoleh dari CommunicationObject) |
OnOpened() |
Mengisi dan memvalidasi tabel filter yang digunakan untuk mengirimkan ke titik akhir. |
OnOpening() |
Memeriksa apakah dispatcher saluran dilampirkan ke host. |
Open() |
Menyebabkan objek komunikasi beralih dari status yang dibuat ke status dibuka. (Diperoleh dari CommunicationObject) |
Open(TimeSpan) |
Menyebabkan objek komunikasi beralih dari status yang dibuat ke status dibuka dalam interval waktu tertentu. (Diperoleh dari CommunicationObject) |
ThrowIfDisposed() |
Melempar pengecualian jika objek komunikasi dibuang. (Diperoleh dari CommunicationObject) |
ThrowIfDisposedOrImmutable() |
Memberikan pengecualian jika objek State komunikasi properti tidak diatur ke status Created . (Diperoleh dari CommunicationObject) |
ThrowIfDisposedOrNotOpen() |
Melempar pengecualian jika objek komunikasi tidak dalam status Opened . (Diperoleh dari CommunicationObject) |
ToString() |
Mengembalikan string yang mewakili objek saat ini. (Diperoleh dari Object) |
Acara
Closed |
Terjadi ketika objek komunikasi beralih ke status tertutup. (Diperoleh dari CommunicationObject) |
Closing |
Terjadi ketika objek komunikasi beralih ke status penutupan. (Diperoleh dari CommunicationObject) |
Faulted |
Terjadi ketika objek komunikasi beralih ke status rusak. (Diperoleh dari CommunicationObject) |
Opened |
Terjadi ketika objek komunikasi beralih ke status terbuka. (Diperoleh dari CommunicationObject) |
Opening |
Terjadi ketika objek komunikasi beralih ke status pembukaan. (Diperoleh dari CommunicationObject) |
Implementasi Antarmuka Eksplisit
IAsyncCommunicationObject.CloseAsync(TimeSpan) |
Komponen yang menerima saluran dan mengaitkannya dengan layanan. (Diperoleh dari CommunicationObject) |
IAsyncCommunicationObject.OpenAsync(TimeSpan) |
Komponen yang menerima saluran dan mengaitkannya dengan layanan. (Diperoleh dari CommunicationObject) |
Metode Ekstensi
CloseHelperAsync(ICommunicationObject, TimeSpan) |
Komponen yang menerima saluran dan mengaitkannya dengan layanan. |
OpenHelperAsync(ICommunicationObject, TimeSpan) |
Komponen yang menerima saluran dan mengaitkannya dengan layanan. |
GetInternalCloseTimeout(CommunicationObject) |
Komponen yang menerima saluran dan mengaitkannya dengan layanan. |