ChannelDispatcher Kelas

Definisi

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.

Berlaku untuk