WebServiceHost Klasse

Definition

Eine abgeleitete ServiceHost-Klasse, die das WCF-REST-Programmiermodell 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 die WebServiceHost -Klasse verwenden, um einen Dienst zu 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 findet, wird automatisch ein Standardendpunkt an der Basisadresse des Diensts für HTTP- und HTTPS-Basisadressen erstellt. Es wird nicht automatisch ein Endpunkt erstellt, wenn der Benutzer unter der Basisadresse explizit einen Endpunkt konfiguriert hat. WebServiceHost konfiguriert die Bindung des Endpunkts automatisch so, dass sie mit den zugeordneten Iis-Sicherheitseinstellungen (Internet Information Services) funktioniert, wenn sie in einem sicheren virtuellen Verzeichnis verwendet wird.

Beim Erstellen eines standardmäßigen HTTP-Endpunkts deaktiviert WebServiceHost auch die HTTP-Hilfeseite und die GET-Funktion der Web Services Description Language (WSDL), damit der Metadatenendpunkt nicht in Konflikt mit dem standardmäßigen HTTP-Endpunkt gerät.

Darüber hinaus fügt die WebServiceHost-Klasse allen Endpunkten WebHttpBehavior hinzu, die nicht bereits über dieses Verhalten verfügen und ein WebMessageEncodingElement haben. Wenn alle Dienstvorgänge entweder HTTP-Anforderungen ohne Text aufweisen oder den HTTP-Anforderungstext als Stream behandeln, konfiguriert WebServiceHost automatisch die richtige Inhaltstypzuordnung für die Bindung.

Konstruktoren

WebServiceHost()

Initialisiert eine neue Instanz der WebServiceHost-Klasse.

WebServiceHost(Object, Uri[])

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

WebServiceHost(Type, Uri[])

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

Eigenschaften

Authentication

Ruft das Dienstauthentifizierungsverhalten ab.

(Geerbt von ServiceHostBase)
Authorization

Ruft das Autorisierungsverhalten für den gehosteten Dienst ab.

(Geerbt von ServiceHostBase)
BaseAddresses

Ruft die vom gehosteten Dienst verwendeten Basisadressen ab.

(Geerbt von ServiceHostBase)
ChannelDispatchers

Ruft die Auflistung der vom Diensthost verwendeten Kanalverteiler ab.

(Geerbt von ServiceHostBase)
CloseTimeout

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

(Geerbt von ServiceHostBase)
Credentials

Ruft die Anmeldeinformationen für den gehosteten Dienst ab.

(Geerbt von ServiceHostBase)
DefaultCloseTimeout

Ruft das standardmäßige Zeitintervall ab, das für das Schließen des Diensthosts zulässig ist.

(Geerbt von ServiceHostBase)
DefaultOpenTimeout

Ruft das standardmäßige Zeitintervall ab, das 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 durch den gehosteten Dienst implementierten Verträge ab.

(Geerbt von ServiceHostBase)
IsDisposed

Ruft einen Wert ab, mit dem angegeben wird, ob das Kommunikationsobjekt verworfen wurde.

(Geerbt von CommunicationObject)
ManualFlowControlLimit

Ruft die Datenflusskontrollengrenze für durch den gehosteten Dienst empfangenen Nachrichten ab oder legt sie fest.

(Geerbt von ServiceHostBase)
OpenTimeout

Ruft das Zeitintervall ab oder legt das Zeitintervall fest, das für das Öffnen des Diensthosts zulässig ist.

(Geerbt von ServiceHostBase)
SingletonInstance

Ruft die Singletoninstanz des gehosteten Diensts ab.

(Geerbt von ServiceHost)
State

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

(Geerbt von CommunicationObject)
ThisLock

Ruft die gegenseitig exklusive Sperre ab, die die Klasseninstanz während eines Zustandsübergangs schützt.

(Geerbt von CommunicationObject)

Methoden

Abort()

Bewirkt, dass ein Kommunikationsobjekt unmittelbar vom aktuellen Zustand in den Schließzustand übergeht.

(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 im Diensthost mit der Standardbindung hinzu.

(Geerbt von ServiceHostBase)
AddServiceEndpoint(ServiceEndpoint)

Fügt den angegebenen Dienstendpunkt dem gehosteten Dienst hinzu.

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

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einem angegebenen Vertrag, einer Bindung und einer Endpunktadresse 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, die er überwacht.

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

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

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

Fügt dem gehosteten Dienst einen Dienstendpunkt mit dem angegebenen Vertrag, einer Bindung und URIs mit den Endpunkt- und Überwachungsadressen hinzu.

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

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einem angegebenen Vertrag, einer Bindung und einer Endpunktadresse hinzu.

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

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

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

Fügt dem gehosteten Dienst einen Dienstendpunkt mit einem angegebenen Vertrag, einer Bindung und einem URI mit der 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, den der Dienst überwacht, hinzu.

(Geerbt von ServiceHost)
ApplyConfiguration()

Lädt die Dienstbeschreibung aus der Konfigurationsdatei und wendet sie auf die Laufzeit an, die erstellt wird.

(Geerbt von ServiceHost)
BeginClose(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu schließen.

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

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt mit einem festgelegten Timeout zu schließen.

(Geerbt von CommunicationObject)
BeginOpen(AsyncCallback, Object)

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu öffnen.

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

Startet einen asynchronen Vorgang, um ein Kommunikationsobjekt innerhalb eines festgelegten Zeitraums zu öffnen.

(Geerbt von CommunicationObject)
Close()

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

(Geerbt von CommunicationObject)
Close(TimeSpan)

Bewirkt den Übergang eines Kommunikationsobjekts innerhalb eines angegebenen Zeitraums vom aktuellen Zustand in den geschlossenen Zustand.

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

Erstellt eine Beschreibung des gehosteten Diensts.

(Geerbt von ServiceHost)
EndClose(IAsyncResult)

Beendet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu schließen.

(Geerbt von CommunicationObject)
EndOpen(IAsyncResult)

Beendet einen asynchronen Vorgang, um ein Kommunikationsobjekt zu öffnen.

(Geerbt von CommunicationObject)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Fault()

Bewirkt, dass ein Kommunikationsobjekt vom aktuellen Zustand in den Fehlerzustand übergeht.

(Geerbt von CommunicationObject)
GetCommunicationObjectType()

Ruft den Typ des Kommunikationsobjekts ab.

(Geerbt von CommunicationObject)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IncrementManualFlowControlLimit(Int32)

Erhöht die Grenze der Datenflussrate der Nachrichten an den gehosteten Dienst um eine angegebene Schrittweite.

(Geerbt von ServiceHostBase)
InitializeDescription(Object, UriSchemeKeyedCollection)

Initialisiert eine Beschreibung des auf der Grundlage seiner Instanz und der angegebenen Basisadressen gehosteten Dienst.

(Geerbt von ServiceHost)
InitializeDescription(Type, UriSchemeKeyedCollection)

Initialisiert eine Beschreibung des auf der Grundlage seines Typs und der angegebenen Basisadressen gehosteten Dienst.

(Geerbt von ServiceHost)
InitializeDescription(UriSchemeKeyedCollection)

Erstellt und initialisiert den Diensthost mit dem Vertrag und den 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 des aktuellen Object.

(Geerbt von Object)
OnAbort()

Bricht den Dienst ab.

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

Startet einen durch das Schließen des Diensthosts aufgerufenen asynchronen Vorgang.

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

Startet einen durch das Öffnen des Diensthosts aufgerufenen asynchronen Vorgang.

(Geerbt von ServiceHostBase)
OnClose(TimeSpan)

Schließt den gehosteten Dienst, einschließlich Kanalverteiler und zugeordneter Instanzkontexte und Listener.

(Geerbt von ServiceHostBase)
OnClosed()

Verwirft gehostete Dienste, wenn der Diensthost geschlossen wird.

(Geerbt von ServiceHost)
OnClosing()

Wird während des Übergangs eines Kommunikationsobjekts in den Schließzustand aufgerufen.

(Geerbt von CommunicationObject)
OnEndClose(IAsyncResult)

Schließt einen durch das Schließen des Diensthosts aufgerufenen asynchronen Vorgang ab.

(Geerbt von ServiceHostBase)
OnEndOpen(IAsyncResult)

Schließt einen durch das Öffnen des Diensthosts aufgerufenen asynchronen Vorgang ab.

(Geerbt von ServiceHostBase)
OnFaulted()

Fügt Verarbeitung auf einem Kommunikationsobjekt ein, nachdem aufgrund des Aufrufs eines synchronen Fehlervorgangs der Übergang zum Fehlerzustand stattgefunden hat.

(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 beim Öffnen der WebServiceHost-Instanz aufgerufen.

Open()

Bewirkt den Übergang eines Kommunikationsobjekts aus dem Erstellt-Zustand in den Geöffnet-Zustand.

(Geerbt von CommunicationObject)
Open(TimeSpan)

Bewirkt den Übergang eines Kommunikationsobjekts innerhalb eines angegebenen Zeitraums vom Erstellt-Zustand in den Geöffnet-Zustand.

(Geerbt von CommunicationObject)
ReleasePerformanceCounters()

Gibt die Leistungsindikatoren für den Dienst und die Kanalverteiler 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 der State-Eigenschaft nicht auf den Created-Zustand festgelegt wurde.

(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

Closed

Tritt ein, sobald ein Kommunikationsobjekt in den geschlossenen Zustand übergeht.

(Geerbt von CommunicationObject)
Closing

Tritt ein, sobald ein Kommunikationsobjekt in den Schließzustand übergeht.

(Geerbt von CommunicationObject)
Faulted

Tritt ein, sobald ein Kommunikationsobjekt in den Fehlerzustand übergeht.

(Geerbt von CommunicationObject)
Opened

Tritt ein, sobald ein Kommunikationsobjekt in den Geöffnet-Zustand übergeht.

(Geerbt von CommunicationObject)
Opening

Tritt ein, sobald ein Kommunikationsobjekt in den Öffnungszustand übergeht.

(Geerbt von CommunicationObject)
UnknownMessageReceived

Tritt ein, wenn eine unbekannte Nachricht empfangen wird.

(Geerbt von ServiceHostBase)

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Schließt den Diensthost.

(Geerbt von ServiceHostBase)

Gilt für: