WebServiceHost Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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) |