WebServiceHost Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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) |