WebServiceHost Klasse

Definition

Eine ServiceHost abgeleitete Klasse, die das REST-Programmiermodell Windows Communication Foundation (WCF) ergänzt.

public ref class WebServiceHost : System::ServiceModel::ServiceHost
public class WebServiceHost : System.ServiceModel.ServiceHost
type WebServiceHost = class
    inherit ServiceHost
Public Class WebServiceHost
Inherits ServiceHost
Vererbung
Abgeleitet

Beispiele

Das folgende Beispiel zeigt, wie Sie mithilfe der WebServiceHost Klasse einen Dienst hosten, der das WCF-REST-Programmiermodell verwendet.

[ServiceContract]
public interface ICalculator
{
    [OperationContract]
    [WebInvoke(UriTemplate = "add?x={x}&y={y}")]
    long Add(long x, long y);

    [OperationContract]
    [WebInvoke(UriTemplate = "sub?x={x}&y={y}")]
    long Subtract(long x, long y);

    [OperationContract]
    [WebInvoke(UriTemplate = "mult?x={x}&y={y}")]
    long Multiply(long x, long y);

    [OperationContract]
    [WebInvoke(UriTemplate = "div?x={x}&y={y}")]
    long Divide(long x, long y);

    [OperationContract]
    [WebGet(UriTemplate = "hello?name={name}")]
    string SayHello(string name);
}

public class CalcService : ICalculator
{
    public long Add(long x, long y)
    {
        return x + y;
    }

    public long Subtract(long x, long y)
    {
        return x - y;
    }

    public long Multiply(long x, long y)
    {
        return x * y;
    }

    public long Divide(long x, long y)
    {
        return x / y;
    }

    public string SayHello(string name)
    {
        return "Hello " + name;
    }
}

class Program
{
    static void Main(string[] args)
    {
        Uri baseAddress = new Uri("http://localhost:8000/");

        WebServiceHost svcHost = new WebServiceHost(typeof(CalcService), baseAddress);

        try
        {
            svcHost.Open();

            Console.WriteLine("Service is running");
            Console.WriteLine("Press enter to quit...");
            Console.ReadLine();

            svcHost.Close();
        }
        catch (CommunicationException cex)
        {
            Console.WriteLine("An exception occurred: {0}", cex.Message);
            svcHost.Abort();
        }
    }
}
<ServiceContract()> _
Public Interface ICalculator
    <OperationContract()> _
    <WebInvoke(UriTemplate:="add?x={x}&y={y}")> _
    Function Add(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
    <WebInvoke(UriTemplate:="sub?x={x}&y={y}")> _
    Function Subtract(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
    <WebInvoke(UriTemplate:="mult?x={x}&y={y}")> _
    Function Multiply(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
    <WebInvoke(UriTemplate:="div?x={x}&y={y}")> _
    Function Divide(ByVal x As Long, ByVal y As Long) As Long

    <OperationContract()> _
    <WebGet(UriTemplate:="hello?name={name}")> _
    Function SayHello(ByVal name As String) As String
End Interface

Public Class CalcService
    Implements ICalculator
    Public Function Add(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Add
        Return x + y
    End Function

    Public Function Subtract(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Subtract
        Return x - y
    End Function

    Public Function Multiply(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Multiply
        Return x * y
    End Function

    Public Function Divide(ByVal x As Long, ByVal y As Long) As Long Implements ICalculator.Divide
        Return x / y
    End Function

    Public Function SayHello(ByVal name As String) As String Implements ICalculator.SayHello
        Return "Hello " + name
    End Function
End Class

Hinweise

Wenn WebServiceHost in der Dienstbeschreibung keine Endpunkte gefunden werden, erstellt sie automatisch einen Standardendpunkt an der Basisadresse des Diensts für HTTP- und HTTPS-Basisadressen. Er erstellt keinen Endpunkt automatisch, wenn der Benutzer einen Endpunkt explizit an der Basisadresse konfiguriert hat. WebServiceHost konfiguriert die Bindung des Endpunkts automatisch so, dass sie mit den zugehörigen sicherheitseinstellungen für Internetinformationsdienste (IIS) funktioniert, wenn sie in einem sicheren virtuellen Verzeichnis verwendet werden.

Beim Erstellen eines standardmäßigen HTTP-Endpunkts deaktiviert die WebServiceHost HTTP-Hilfeseite und die WSDL-GET-Funktionalität (Web Services Description Language), sodass der Metadatenendpunkt den Standard-HTTP-Endpunkt nicht beeinträchtigt.

Darüber hinaus fügt die WebServiceHost Klasse alle WebHttpBehavior Endpunkte hinzu, die noch nicht über das Verhalten verfügen und über ein WebMessageEncodingElement. Wenn alle Vorgänge des Diensts entweder über leere HTTP-Anforderungstexte verfügen oder den HTTP-Anforderungstext als Datenstrom behandeln, konfiguriert die WebServiceHost entsprechende Inhaltstypzuordnung für die Bindung automatisch.

Konstruktoren

Name Beschreibung
WebServiceHost()

Initialisiert eine neue Instanz der WebServiceHost-Klasse.

WebServiceHost(Object, Uri[])

Initialisiert eine neue Instanz der WebServiceHost Klasse mit der angegebenen Singleton-Serverinstanz und Basisadresse.

WebServiceHost(Type, Uri[])

Initialisiert eine neue Instanz der WebServiceHost Klasse mit dem angegebenen Diensttyp und der Basisadresse.

Eigenschaften

Name Beschreibung
Authentication

Ruft das Dienstauthentifizierungsverhalten ab.

(Geerbt von ServiceHostBase)
Authorization

Ruft das Autorisierungsverhalten für den gehosteten Dienst ab.

(Geerbt von ServiceHostBase)
BaseAddresses

Ruft die Basisadressen ab, die vom gehosteten Dienst verwendet werden.

(Geerbt von ServiceHostBase)
ChannelDispatchers

Ruft die Sammlung von Kanalverteilern ab, die vom Diensthost verwendet werden.

(Geerbt von ServiceHostBase)
CloseTimeout

Ruft das Zeitintervall ab, das für das Schließen des Diensthosts zulässig ist, oder legt dieses fest.

(Geerbt von ServiceHostBase)
Credentials

Ruft die Anmeldeinformationen für den gehosteten Dienst ab.

(Geerbt von ServiceHostBase)
DefaultCloseTimeout

Ruft das Standardintervall der Zeit ab, die für das Schließen des Diensthosts zulässig ist.

(Geerbt von ServiceHostBase)
DefaultOpenTimeout

Ruft das Standardintervall der Zeit ab, die für das Öffnen des Diensthosts zulässig ist.

(Geerbt von ServiceHostBase)
Description

Ruft die Beschreibung des gehosteten Diensts ab.

(Geerbt von ServiceHostBase)
Extensions

Ruft die Erweiterungen für den aktuellen angegebenen Diensthost ab.

(Geerbt von ServiceHostBase)
ImplementedContracts

Ruft die Verträge ab, die vom gehosteten Dienst implementiert werden.

(Geerbt von ServiceHostBase)
IsDisposed

Ruft einen Wert ab, der angibt, ob das Kommunikationsobjekt verworfen wurde.

(Geerbt von CommunicationObject)
ManualFlowControlLimit

Ruft den Ablaufsteuerungsgrenzwert für Nachrichten ab, die vom gehosteten Dienst empfangen werden, oder legt diese fest.

(Geerbt von ServiceHostBase)
OpenTimeout

Dient zum Abrufen oder Festlegen des Zeitintervalls, das für das Öffnen des Diensthosts zulässig ist.

(Geerbt von ServiceHostBase)
SingletonInstance

Ruft die Singleton-Instanz des gehosteten Diensts ab.

(Geerbt von ServiceHost)
State

Ruft einen Wert ab, der den aktuellen Status des Kommunikationsobjekts angibt.

(Geerbt von CommunicationObject)
ThisLock

Ruft die sich gegenseitig ausschließende Sperre ab, die die Klasseninstanz während eines Zustandsübergangs schützt.

(Geerbt von CommunicationObject)

Methoden

Name Beschreibung
Abort()

Bewirkt, dass ein Kommunikationsobjekt sofort vom aktuellen Zustand in den Schließen-Zustand wechselt.

(Geerbt von CommunicationObject)
AddBaseAddress(Uri)

Fügt dem Diensthost eine Basisadresse hinzu.

(Geerbt von ServiceHostBase)
AddDefaultEndpoints()

Fügt Dienstendpunkte für alle Basisadressen in jedem Vertrag hinzu, der im Diensthost mit der Standardbindung gefunden wurde.

(Geerbt von ServiceHostBase)
AddServiceEndpoint(ServiceEndpoint)

Fügt dem gehosteten Dienst den angegebenen Dienstendpunkt hinzu.

(Geerbt von ServiceHostBase)
AddServiceEndpoint(String, Binding, String, Uri)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einem angegebenen Vertrag, einer Bindung, einer Endpunktadresse und einem URI hinzu, der die Adresse enthält, an der er lauscht.

(Geerbt von ServiceHostBase)
AddServiceEndpoint(String, Binding, String)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einer angegebenen Vertrags-, Bindungs- und Endpunktadresse hinzu.

(Geerbt von ServiceHostBase)
AddServiceEndpoint(String, Binding, Uri, Uri)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit den angegebenen Vertrags-, Bindungs- und URIs hinzu, die den Endpunkt und die Überwachungsadressen enthalten.

(Geerbt von ServiceHostBase)
AddServiceEndpoint(String, Binding, Uri)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einem angegebenen Vertrag, einer Bindung und einem URI hinzu, der die Endpunktadresse enthält.

(Geerbt von ServiceHostBase)
AddServiceEndpoint(Type, Binding, String, Uri)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einem angegebenen Vertrag, einer Bindung, einer Endpunktadresse und einem URI hinzu, auf den der Dienst lauscht.

(Geerbt von ServiceHost)
AddServiceEndpoint(Type, Binding, String)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einer angegebenen Vertrags-, Bindungs- und Endpunktadresse hinzu.

(Geerbt von ServiceHost)
AddServiceEndpoint(Type, Binding, Uri, Uri)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einem angegebenen Vertrag, einer Bindung, einem URI mit der Endpunktadresse und einem URI hinzu, auf den der Dienst lauscht.

(Geerbt von ServiceHost)
AddServiceEndpoint(Type, Binding, Uri)

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einem angegebenen Vertrag, einer Bindung und einem URI hinzu, der die Endpunktadresse enthält.

(Geerbt von ServiceHost)
ApplyConfiguration()

Lädt die Dienstbeschreibung aus der Konfigurationsdatei und wendet sie auf die erstellte Laufzeit an.

(Geerbt von ServiceHost)
BeginClose(AsyncCallback, Object)

Startet einen asynchronen Vorgang zum Schließen eines Kommunikationsobjekts.

(Geerbt von CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang zum Schließen eines Kommunikationsobjekts mit einem angegebenen Timeout.

(Geerbt von CommunicationObject)
BeginOpen(AsyncCallback, Object)

Startet einen asynchronen Vorgang zum Öffnen eines Kommunikationsobjekts.

(Geerbt von CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt innerhalb eines bestimmten Zeitintervalls zu öffnen.

(Geerbt von CommunicationObject)
Close()

Bewirkt, dass ein Kommunikationsobjekt vom aktuellen Zustand in den geschlossenen Zustand wechselt.

(Geerbt von CommunicationObject)
Close(TimeSpan)

Bewirkt, dass ein Kommunikationsobjekt innerhalb eines bestimmten Zeitintervalls vom aktuellen Zustand in den geschlossenen Zustand wechselt.

(Geerbt von CommunicationObject)
CreateDescription(IDictionary<String,ContractDescription>)

Erstellt eine Beschreibung des gehosteten Diensts.

(Geerbt von ServiceHost)
EndClose(IAsyncResult)

Schließt einen asynchronen Vorgang zum Schließen eines Kommunikationsobjekts ab.

(Geerbt von CommunicationObject)
EndOpen(IAsyncResult)

Schließt einen asynchronen Vorgang zum Öffnen eines Kommunikationsobjekts ab.

(Geerbt von CommunicationObject)
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
Fault()

Bewirkt, dass ein Kommunikationsobjekt vom aktuellen Zustand in den fehlerhaften Zustand wechselt.

(Geerbt von CommunicationObject)
GetCommunicationObjectType()

Ruft den Typ des Kommunikationsobjekts ab.

(Geerbt von CommunicationObject)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
IncrementManualFlowControlLimit(Int32)

Erhöht den Grenzwert für die Flussrate von Nachrichten an den gehosteten Dienst um einen angegebenen Inkrement.

(Geerbt von ServiceHostBase)
InitializeDescription(Object, UriSchemeKeyedCollection)

Initialisiert eine Beschreibung des Diensts, der basierend auf seiner Instanz und den angegebenen Basisadressen gehostet wird.

(Geerbt von ServiceHost)
InitializeDescription(Type, UriSchemeKeyedCollection)

Initialisiert eine Beschreibung des diensts, der basierend auf seinem Typ und den angegebenen Basisadressen gehostet wird.

(Geerbt von ServiceHost)
InitializeDescription(UriSchemeKeyedCollection)

Erstellt und initialisiert den Diensthost mit den Vertrags- und Dienstbeschreibungen.

(Geerbt von ServiceHostBase)
InitializeRuntime()

Initialisiert die Laufzeit für den Diensthost.

(Geerbt von ServiceHostBase)
LoadConfigurationSection(ServiceElement)

Lädt das Dienstelement aus der Konfigurationsdatei des gehosteten Diensts.

(Geerbt von ServiceHostBase)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
OnAbort()

Bricht den Dienst ab.

(Geerbt von ServiceHostBase)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, der beim Schließen des Diensthosts aufgerufen wird.

(Geerbt von ServiceHostBase)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Startet einen asynchronen Vorgang, der beim Öffnen des Diensthosts aufgerufen wird.

(Geerbt von ServiceHostBase)
OnClose(TimeSpan)

Schließt den gehosteten Dienst, einschließlich ihrer Kanalverteiler und zugehöriger Instanzenkontexte und Listener.

(Geerbt von ServiceHostBase)
OnClosed()

Entfernt verfügbare Dienste, die beim Schließen des Diensthosts gehostet werden.

(Geerbt von ServiceHost)
OnClosing()

Wird während des Übergangs eines Kommunikationsobjekts in den Abschlusszustand aufgerufen.

(Geerbt von CommunicationObject)
OnEndClose(IAsyncResult)

Schließt einen asynchronen Vorgang ab, der beim Schließen des Diensthosts aufgerufen wird.

(Geerbt von ServiceHostBase)
OnEndOpen(IAsyncResult)

Schließt einen asynchronen Vorgang ab, der beim Öffnen des Diensthosts aufgerufen wird.

(Geerbt von ServiceHostBase)
OnFaulted()

Fügt die Verarbeitung in ein Kommunikationsobjekt ein, nachdem es aufgrund des Aufrufs eines synchronen Fehlervorgangs in den fehlerhaften Zustand wechselt.

(Geerbt von CommunicationObject)
OnOpen(TimeSpan)

Öffnet die Kanalverteiler.

(Geerbt von ServiceHostBase)
OnOpened()

Ruft die Dienstanmeldeinformationen, die Dienstauthentifizierung und das Autorisierungsverhalten für den gehosteten Dienst ab.

(Geerbt von ServiceHostBase)
OnOpening()

Wird aufgerufen, wenn die WebServiceHost Instanz geöffnet wird.

Open()

Bewirkt, dass ein Kommunikationsobjekt vom erstellten Zustand in den geöffneten Zustand wechselt.

(Geerbt von CommunicationObject)
Open(TimeSpan)

Bewirkt, dass ein Kommunikationsobjekt innerhalb eines bestimmten Zeitintervalls vom erstellten Zustand in den geöffneten Zustand wechselt.

(Geerbt von CommunicationObject)
ReleasePerformanceCounters()

Gibt die Leistungsindikatoren für dienst- und kanal dispatcher für den gehosteten Dienst frei.

(Geerbt von ServiceHostBase)
SetEndpointAddress(ServiceEndpoint, String)

Legt die Endpunktadresse des angegebenen Endpunkts auf die angegebene Adresse fest.

(Geerbt von ServiceHostBase)
ThrowIfDisposed()

Löst eine Ausnahme aus, wenn das Kommunikationsobjekt verworfen wird.

(Geerbt von CommunicationObject)
ThrowIfDisposedOrImmutable()

Löst eine Ausnahme aus, wenn das Kommunikationsobjekt, das die State Eigenschaft nicht auf den Created Zustand festgelegt ist.

(Geerbt von CommunicationObject)
ThrowIfDisposedOrNotOpen()

Löst eine Ausnahme aus, wenn sich das Kommunikationsobjekt nicht im Opened Zustand befindet.

(Geerbt von CommunicationObject)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

Name Beschreibung
Closed

Tritt auf, wenn ein Kommunikationsobjekt in den geschlossenen Zustand wechselt.

(Geerbt von CommunicationObject)
Closing

Tritt auf, wenn ein Kommunikationsobjekt in den Schließen-Zustand wechselt.

(Geerbt von CommunicationObject)
Faulted

Tritt auf, wenn ein Kommunikationsobjekt in den fehlerhaften Zustand wechselt.

(Geerbt von CommunicationObject)
Opened

Tritt auf, wenn ein Kommunikationsobjekt in den geöffneten Zustand wechselt.

(Geerbt von CommunicationObject)
Opening

Tritt auf, wenn ein Kommunikationsobjekt in den Öffnungszustand wechselt.

(Geerbt von CommunicationObject)
UnknownMessageReceived

Tritt auf, wenn eine unbekannte Nachricht empfangen wird.

(Geerbt von ServiceHostBase)

Explizite Schnittstellenimplementierungen

Name Beschreibung
IDisposable.Dispose()

Schließt den Diensthost.

(Geerbt von ServiceHostBase)

Gilt für: