Sdílet prostřednictvím


WebServiceHost Třída

Definice

Odvozená ServiceHost třída, která doplňuje programovací model REST Windows Communication Foundation (WCF).

public ref class WebServiceHost : System::ServiceModel::ServiceHost
public class WebServiceHost : System.ServiceModel.ServiceHost
type WebServiceHost = class
    inherit ServiceHost
Public Class WebServiceHost
Inherits ServiceHost
Dědičnost
Odvozené

Příklady

Následující příklad ukazuje, jak pomocí WebServiceHost třídy hostovat službu, která využívá programovací model WCF REST.

[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

Poznámky

Pokud WebServiceHost v popisu služby nenajde žádné koncové body, automaticky vytvoří výchozí koncový bod na základní adrese služby pro základní adresy HTTP a HTTPS. Nevytvoří koncový bod automaticky, pokud uživatel na základní adrese explicitně nakonfiguroval koncový bod. WebServiceHostpři použití v zabezpečeném virtuálním adresáři automaticky nakonfiguruje vazbu koncového bodu tak, aby fungovala s přidruženými nastaveními zabezpečení Internetová informační služba (IIS).

Při vytváření výchozího koncového bodu HTTP zakáže také WebServiceHost stránku nápovědy HTTP a funkci GET (Web Services Description Language) WSDL (Web Services Description Language), aby koncový bod metadat nepřekážel výchozímu koncovému bodu HTTP.

Kromě toho WebServiceHost třída přidá WebHttpBehavior do všech koncových bodů, které ještě nemají chování a které mají WebMessageEncodingElement. Pokud všechny operace ve službě mají buď prázdné tělo požadavku HTTP, nebo se zabývá textem požadavku HTTP jako streamem, WebServiceHost pak automaticky nakonfiguruje mapovač odpovídajícího typu obsahu pro vazbu.

Konstruktory

WebServiceHost()

Inicializuje novou instanci WebServiceHost třídy.

WebServiceHost(Object, Uri[])

Inicializuje novou instanci WebServiceHost třídy se zadanou instancí jednoúčelového serveru a základní adresou.

WebServiceHost(Type, Uri[])

Inicializuje novou instanci WebServiceHost třídy se zadaným typem služby a základní adresou.

Vlastnosti

Authentication

Získá chování ověřování služby.

(Zděděno od ServiceHostBase)
Authorization

Získá autorizační chování hostované služby.

(Zděděno od ServiceHostBase)
BaseAddresses

Získá základní adresy používané hostované službou.

(Zděděno od ServiceHostBase)
ChannelDispatchers

Získá kolekci dispečerů kanálů používaných hostitelem služby.

(Zděděno od ServiceHostBase)
CloseTimeout

Získá nebo nastaví interval času povoleného pro hostitele služby zavřít.

(Zděděno od ServiceHostBase)
Credentials

Získá přihlašovací údaje pro hostované služby.

(Zděděno od ServiceHostBase)
DefaultCloseTimeout

Získá výchozí časový interval povolený pro hostitele služby zavřít.

(Zděděno od ServiceHostBase)
DefaultOpenTimeout

Získá výchozí časový interval povolený pro otevření hostitele služby.

(Zděděno od ServiceHostBase)
Description

Získá popis hostované služby.

(Zděděno od ServiceHostBase)
Extensions

Získá rozšíření pro aktuálního zadaného hostitele služby.

(Zděděno od ServiceHostBase)
ImplementedContracts

Načte kontrakty implementované službou hostovanou službou.

(Zděděno od ServiceHostBase)
IsDisposed

Získá hodnotu, která označuje, zda komunikační objekt byl odstraněn.

(Zděděno od CommunicationObject)
ManualFlowControlLimit

Získá nebo nastaví limit řízení toku pro zprávy přijaté službou hostované službou.

(Zděděno od ServiceHostBase)
OpenTimeout

Získá nebo nastaví interval, který je povolený pro otevření hostitele služby.

(Zděděno od ServiceHostBase)
SingletonInstance

Získá jednoúčelovou instanci hostované služby.

(Zděděno od ServiceHost)
State

Získá hodnotu, která označuje aktuální stav komunikačního objektu.

(Zděděno od CommunicationObject)
ThisLock

Získá vzájemně vylučující zámek, který chrání instanci třídy během přechodu stavu.

(Zděděno od CommunicationObject)

Metody

Abort()

Způsobí, že komunikační objekt přejde okamžitě z aktuálního stavu do konečného stavu.

(Zděděno od CommunicationObject)
AddBaseAddress(Uri)

Přidá základní adresu k hostiteli služby.

(Zděděno od ServiceHostBase)
AddDefaultEndpoints()

Přidá koncové body služby pro všechny základní adresy v jednotlivých kontraktech nalezených v hostiteli služby s výchozí vazbou.

(Zděděno od ServiceHostBase)
AddServiceEndpoint(ServiceEndpoint)

Přidá zadaný koncový bod služby do hostované služby.

(Zděděno od ServiceHostBase)
AddServiceEndpoint(String, Binding, String)

Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou a adresou koncového bodu.

(Zděděno od ServiceHostBase)
AddServiceEndpoint(String, Binding, String, Uri)

Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou, adresou koncového bodu a identifikátorem URI, který obsahuje adresu, na které naslouchá.

(Zděděno od ServiceHostBase)
AddServiceEndpoint(String, Binding, Uri)

Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou a identifikátorem URI, který obsahuje adresu koncového bodu.

(Zděděno od ServiceHostBase)
AddServiceEndpoint(String, Binding, Uri, Uri)

Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou a identifikátory URI, které obsahují koncový bod a naslouchání adresám.

(Zděděno od ServiceHostBase)
AddServiceEndpoint(Type, Binding, String)

Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou a adresou koncového bodu.

(Zděděno od ServiceHost)
AddServiceEndpoint(Type, Binding, String, Uri)

Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou, adresou koncového bodu a identifikátorem URI, na kterém služba naslouchá.

(Zděděno od ServiceHost)
AddServiceEndpoint(Type, Binding, Uri)

Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou a identifikátorem URI, který obsahuje adresu koncového bodu.

(Zděděno od ServiceHost)
AddServiceEndpoint(Type, Binding, Uri, Uri)

Přidá koncový bod služby do hostované služby se zadaným kontraktem, vazbou, identifikátorem URI obsahujícím adresu koncového bodu a identifikátorem URI, na kterém služba naslouchá.

(Zděděno od ServiceHost)
ApplyConfiguration()

Načte popis služby z konfiguračního souboru a použije ho na vytvořený modul runtime.

(Zděděno od ServiceHost)
BeginClose(AsyncCallback, Object)

Zahájí asynchronní operaci uzavření komunikačního objektu.

(Zděděno od CommunicationObject)
BeginClose(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci uzavření komunikačního objektu se zadaným časovým limitem.

(Zděděno od CommunicationObject)
BeginOpen(AsyncCallback, Object)

Zahájí asynchronní operaci otevření komunikačního objektu.

(Zděděno od CommunicationObject)
BeginOpen(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci otevření komunikačního objektu v zadaném časovém intervalu.

(Zděděno od CommunicationObject)
Close()

Způsobí přechod komunikačního objektu z aktuálního stavu do uzavřeného stavu.

(Zděděno od CommunicationObject)
Close(TimeSpan)

Způsobí, že komunikační objekt přejde z aktuálního stavu do uzavřeného stavu v zadaném časovém intervalu.

(Zděděno od CommunicationObject)
CreateDescription(IDictionary<String,ContractDescription>)

Vytvoří popis hostované služby.

(Zděděno od ServiceHost)
EndClose(IAsyncResult)

Dokončí asynchronní operaci pro zavření komunikačního objektu.

(Zděděno od CommunicationObject)
EndOpen(IAsyncResult)

Dokončí asynchronní operaci pro otevření komunikačního objektu.

(Zděděno od CommunicationObject)
Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
Fault()

Způsobí přechod komunikačního objektu z aktuálního stavu do chybného stavu.

(Zděděno od CommunicationObject)
GetCommunicationObjectType()

Získá typ komunikačního objektu.

(Zděděno od CommunicationObject)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetType()

Type Získá aktuální instanci.

(Zděděno od Object)
IncrementManualFlowControlLimit(Int32)

Zvýší limit rychlosti toku zpráv do hostované služby zadaným přírůstkem.

(Zděděno od ServiceHostBase)
InitializeDescription(Object, UriSchemeKeyedCollection)

Inicializuje popis služby hostované na základě jeho instance a zadané základní adresy.

(Zděděno od ServiceHost)
InitializeDescription(Type, UriSchemeKeyedCollection)

Inicializuje popis služby hostované na základě jeho typu a zadané základní adresy.

(Zděděno od ServiceHost)
InitializeDescription(UriSchemeKeyedCollection)

Vytvoří a inicializuje hostitele služby pomocí popisu kontraktu a služby.

(Zděděno od ServiceHostBase)
InitializeRuntime()

Inicializuje modul runtime pro hostitele služby.

(Zděděno od ServiceHostBase)
LoadConfigurationSection(ServiceElement)

Načte prvek služby z konfiguračního souboru hostované služby.

(Zděděno od ServiceHostBase)
MemberwiseClone()

Vytvoří použádnou kopii aktuálního souboru Object.

(Zděděno od Object)
OnAbort()

Přeruší službu.

(Zděděno od ServiceHostBase)
OnBeginClose(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci vyvolánou na konci hostitele služby.

(Zděděno od ServiceHostBase)
OnBeginOpen(TimeSpan, AsyncCallback, Object)

Zahájí asynchronní operaci vyvolánou při otevření hostitele služby.

(Zděděno od ServiceHostBase)
OnClose(TimeSpan)

Zavře hostované služby, včetně jejich dispečerů kanálů a přidružených kontextů instancí a naslouchacích procesů.

(Zděděno od ServiceHostBase)
OnClosed()

Odstraní jednorázové služby hostované při zavření hostitele služby.

(Zděděno od ServiceHost)
OnClosing()

Vyvoláno během přechodu komunikačního objektu do konečného stavu.

(Zděděno od CommunicationObject)
OnEndClose(IAsyncResult)

Dokončí asynchronní operaci vyvolánou při zavření hostitele služby.

(Zděděno od ServiceHostBase)
OnEndOpen(IAsyncResult)

Dokončí asynchronní operaci vyvolánou při otevření hostitele služby.

(Zděděno od ServiceHostBase)
OnFaulted()

Vloží zpracování na komunikační objekt poté, co přejde do chybného stavu kvůli vyvolání synchronní operace selhání.

(Zděděno od CommunicationObject)
OnOpen(TimeSpan)

Otevře dispečery kanálu.

(Zděděno od ServiceHostBase)
OnOpened()

Získá přihlašovací údaje služby, ověřování služeb a chování autorizace hostované služby.

(Zděděno od ServiceHostBase)
OnOpening()

Volá se WebServiceHost při otevření instance.

Open()

Způsobí přechod komunikačního objektu z vytvořeného stavu do otevřeného stavu.

(Zděděno od CommunicationObject)
Open(TimeSpan)

Způsobí přechod komunikačního objektu z vytvořeného stavu do otevřeného stavu v zadaném časovém intervalu.

(Zděděno od CommunicationObject)
ReleasePerformanceCounters()

Uvolní čítače výkonu služby a kanálu pro hostované služby.

(Zděděno od ServiceHostBase)
SetEndpointAddress(ServiceEndpoint, String)

Nastaví adresu koncového bodu zadaného koncového bodu na zadanou adresu.

(Zděděno od ServiceHostBase)
ThrowIfDisposed()

Vyvolá výjimku, pokud je objekt komunikace odstraněn.

(Zděděno od CommunicationObject)
ThrowIfDisposedOrImmutable()

Vyvolá výjimku, pokud komunikační objekt State , který vlastnost není nastavena Created na stav.

(Zděděno od CommunicationObject)
ThrowIfDisposedOrNotOpen()

Vyvolá výjimku, pokud komunikační objekt není ve Opened stavu.

(Zděděno od CommunicationObject)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

událost

Closed

Nastane, když komunikační objekt přejde do uzavřeného stavu.

(Zděděno od CommunicationObject)
Closing

Nastane, když komunikační objekt přejde do konečného stavu.

(Zděděno od CommunicationObject)
Faulted

Nastane, když komunikační objekt přejde do chybného stavu.

(Zděděno od CommunicationObject)
Opened

Nastane, když komunikační objekt přejde do otevřeného stavu.

(Zděděno od CommunicationObject)
Opening

Nastane, když komunikační objekt přejde do otevřeného stavu.

(Zděděno od CommunicationObject)
UnknownMessageReceived

Nastane, když se přijme neznámá zpráva.

(Zděděno od ServiceHostBase)

Explicitní implementace rozhraní

IDisposable.Dispose()

Zavře hostitele služby.

(Zděděno od ServiceHostBase)

Platí pro