ChannelDispatcher.Detach(ServiceHostBase) Methode

Definition

Trennt den Diensthost vom Kanalverteiler.

protected:
 override void Detach(System::ServiceModel::ServiceHostBase ^ host);
protected override void Detach (System.ServiceModel.ServiceHostBase host);
override this.Detach : System.ServiceModel.ServiceHostBase -> unit
Protected Overrides Sub Detach (host As ServiceHostBase)

Parameter

host
ServiceHostBase

Der ServiceHostBase für den Dienst.

Ausnahmen

host ist null.

host ist nicht der Host des Kanalverteilers.

- oder -

Das Kommunikationsobjekt befindet sich in einem Opening-Zustand oder in einem Opened-Zustand.

Das Kommunikationsobjekt befindet sich in einem Closing-Zustand oder einem Closed-Zustand.

Das Kommunikationsobjekt befindet sich in einem Faulted-Zustand.

Beispiele

Uri baseAddress = new Uri("http://localhost:8001/Simple");
ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress);

serviceHost.AddServiceEndpoint(
    typeof(ICalculator),
    new WSHttpBinding(),
    "CalculatorServiceObject");

serviceHost.Open();

IChannelListener icl = serviceHost.ChannelDispatchers[0].Listener;
ChannelDispatcher dispatcher = new ChannelDispatcher(icl);
dispatcher.CloseInput();
Dim baseAddress As New Uri("http://localhost:8001/Simple")
Dim serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)

serviceHost.AddServiceEndpoint(GetType(ICalculator), New WSHttpBinding(), "CalculatorServiceObject")

serviceHost.Open()

Dim icl As IChannelListener = serviceHost.ChannelDispatchers(0).Listener
Dim dispatcher As New ChannelDispatcher(icl)
dispatcher.CloseInput()

Hinweise

ServiceHostBase kann nur getrennt werden, wenn die Instanz von ChannelDispatcher den Created-Zustand aufweist, da dies der einzige Zustand ist, der veränderbar ist und nicht verworfen wurde.

Legt für die dem Kanalverteiler zugeordnete ServiceHostBase den Wert null fest.

Gilt für