WebServiceHost Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Clase derivada de ServiceHost que complementa el modelo de programación de REST de 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
- Herencia
- Derivado
Ejemplos
En el ejemplo siguiente se muestra cómo usar la WebServiceHost clase para hospedar un servicio que usa el modelo de programación REST de WCF.
[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
Comentarios
Si WebServiceHost no encuentra extremos en la descripción del servicio, crea automáticamente un extremo predeterminado en la dirección base del servicio para direcciones base HTTP y HTTPS. No crea automáticamente un extremo si el usuario ha configurado explícitamente un extremo en la dirección base. WebServiceHost configura automáticamente el enlace del punto de conexión para que funcione con la configuración de seguridad de Internet Information Services (IIS) asociada cuando se usa en un directorio virtual seguro.
Al crear un punto de conexión HTTP predeterminado, el WebServiceHost también deshabilita la página de ayuda de HTTP y la funcionalidad GET del lenguaje de descripción de servicios Web (WSDL) para que el punto de conexión de metadatos no interfiera con el punto de conexión HTTP predeterminado.
Además, la clase WebServiceHost agrega el WebHttpBehavior a todos los extremos que aún no tienen el comportamiento y que tienen un WebMessageEncodingElement. Si todas las operaciones del servicio tienen cuerpos de solicitud HTTP vacíos o tratan con el cuerpo de solicitud HTTP como una secuencia, WebServiceHost configura automáticamente el asignador del tipo de contenido adecuado para el enlace.
Constructores
WebServiceHost() |
Inicializa una nueva instancia de la clase WebServiceHost. |
WebServiceHost(Object, Uri[]) |
Inicializa una nueva instancia de la clase WebServiceHost con la instancia del servidor singleton y la dirección base especificadas. |
WebServiceHost(Type, Uri[]) |
Inicializa una nueva instancia de la clase WebServiceHost con el tipo de servicio y dirección base especificados. |
Propiedades
Authentication |
Obtiene el comportamiento de autenticación de servicio. (Heredado de ServiceHostBase) |
Authorization |
Obtiene el comportamiento de la autorización para el servicio hospedado. (Heredado de ServiceHostBase) |
BaseAddresses |
Obtiene las direcciones base utilizadas por el servicio hospedado. (Heredado de ServiceHostBase) |
ChannelDispatchers |
Obtiene la colección de distribuidores del canal utilizados por el host del servicio. (Heredado de ServiceHostBase) |
CloseTimeout |
Obtiene o establece el intervalo de tiempo permitido para que el host del servicio se cierre. (Heredado de ServiceHostBase) |
Credentials |
Obtiene la credencial para el servicio hospedado. (Heredado de ServiceHostBase) |
DefaultCloseTimeout |
Obtiene o establece el intervalo de tiempo predeterminado permitido para que el host del servicio se cierre. (Heredado de ServiceHostBase) |
DefaultOpenTimeout |
Obtiene el intervalo de tiempo predeterminado permitido para que el host del servicio se abra. (Heredado de ServiceHostBase) |
Description |
Obtiene la descripción del servicio hospedado. (Heredado de ServiceHostBase) |
Extensions |
Obtiene las extensiones para el host del servicio actual especificado. (Heredado de ServiceHostBase) |
ImplementedContracts |
Recupera los contratos implementados por el servicio hospedado. (Heredado de ServiceHostBase) |
IsDisposed |
Obtiene un valor que indica si el objeto de comunicación se ha eliminado. (Heredado de CommunicationObject) |
ManualFlowControlLimit |
Obtiene o establece el límite del control de flujo para los mensajes recibidos por el servicio hospedado. (Heredado de ServiceHostBase) |
OpenTimeout |
Obtiene o establece el intervalo de tiempo permitido para que el host del servicio se abra. (Heredado de ServiceHostBase) |
SingletonInstance |
Obtiene la instancia de singleton del servicio hospedado. (Heredado de ServiceHost) |
State |
Obtiene un valor que indica el estado actual del objeto de comunicación. (Heredado de CommunicationObject) |
ThisLock |
Obtiene el bloqueo mutuamente excluyente que protege la instancia de clase durante una transición de estado. (Heredado de CommunicationObject) |
Métodos
Abort() |
Provoca que un objeto de comunicación pase inmediatamente de su estado actual al estado de cierre. (Heredado de CommunicationObject) |
AddBaseAddress(Uri) |
Agrega una dirección base al host de servicio. (Heredado de ServiceHostBase) |
AddDefaultEndpoints() |
Agrega puntos de conexión de servicio para todas las direcciones base en cada contrato encontrado en el host del servicio con el enlace predeterminado. (Heredado de ServiceHostBase) |
AddServiceEndpoint(ServiceEndpoint) |
Agrega el extremo de servicio especificado al servicio hospedado. (Heredado de ServiceHostBase) |
AddServiceEndpoint(String, Binding, String) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato especificado, un enlace y una dirección del punto de conexión. (Heredado de ServiceHostBase) |
AddServiceEndpoint(String, Binding, String, Uri) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato especificado, un enlace, una dirección del punto de conexión y un URI que contiene la dirección en la que realiza escuchas. (Heredado de ServiceHostBase) |
AddServiceEndpoint(String, Binding, Uri) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato especificado, un enlace y un URI que contiene la dirección del punto de conexión. (Heredado de ServiceHostBase) |
AddServiceEndpoint(String, Binding, Uri, Uri) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato especificado, un enlace y URI que contienen la dirección del punto de conexión y la de escucha (Heredado de ServiceHostBase) |
AddServiceEndpoint(Type, Binding, String) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato especificado, un enlace y una dirección del punto de conexión. (Heredado de ServiceHost) |
AddServiceEndpoint(Type, Binding, String, Uri) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato especificado, un enlace y una dirección del punto de conexión y un URI en el que escucha el servicio. (Heredado de ServiceHost) |
AddServiceEndpoint(Type, Binding, Uri) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato especificado, un enlace y un URI que contiene la dirección del punto de conexión. (Heredado de ServiceHost) |
AddServiceEndpoint(Type, Binding, Uri, Uri) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato especificado, un enlace, un URI que contiene la dirección del punto de conexión y uno en el que se escucha el servicio. (Heredado de ServiceHost) |
ApplyConfiguration() |
Carga la descripción de servicio del archivo de configuración y la aplica al tiempo de ejecución que se está construyendo. (Heredado de ServiceHost) |
BeginClose(AsyncCallback, Object) |
Comienza una operación asincrónica para cerrar un objeto de comunicación. (Heredado de CommunicationObject) |
BeginClose(TimeSpan, AsyncCallback, Object) |
Comienza una operación asincrónica para cerrar un objeto de comunicación con un tiempo de espera especificado. (Heredado de CommunicationObject) |
BeginOpen(AsyncCallback, Object) |
Comienza una operación asincrónica para abrir un objeto de comunicación. (Heredado de CommunicationObject) |
BeginOpen(TimeSpan, AsyncCallback, Object) |
Comienza una operación asincrónica para abrir un objeto de comunicación dentro de un intervalo de tiempo especificado. (Heredado de CommunicationObject) |
Close() |
Provoca que un objeto de comunicación pase de su estado actual al estado cerrado. (Heredado de CommunicationObject) |
Close(TimeSpan) |
Provoca que un objeto de comunicación pase su estado actual al estado cerrado dentro de un intervalo de tiempo especificado. (Heredado de CommunicationObject) |
CreateDescription(IDictionary<String,ContractDescription>) |
Crea una descripción del servicio hospedado. (Heredado de ServiceHost) |
EndClose(IAsyncResult) |
Completa una operación asincrónica para cerrar un objeto de comunicación. (Heredado de CommunicationObject) |
EndOpen(IAsyncResult) |
Completa una operación asincrónica para abrir un objeto de comunicación. (Heredado de CommunicationObject) |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
Fault() |
Provoca que un objeto de comunicación pase de su estado actual al estado de error. (Heredado de CommunicationObject) |
GetCommunicationObjectType() |
Obtiene el tipo de objeto de comunicación. (Heredado de CommunicationObject) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
IncrementManualFlowControlLimit(Int32) |
Aumenta el límite en la tasa de flujo de mensajes al servicio hospedado en un incremento especificado. (Heredado de ServiceHostBase) |
InitializeDescription(Object, UriSchemeKeyedCollection) |
Inicializa una descripción del servicio hospedado dependiendo de su instancia y las direcciones base especificadas. (Heredado de ServiceHost) |
InitializeDescription(Type, UriSchemeKeyedCollection) |
Inicializa una descripción del servicio hospedado dependiendo de su tipo y las direcciones base especificadas. (Heredado de ServiceHost) |
InitializeDescription(UriSchemeKeyedCollection) |
Crea e inicializa el host del servicio con las descripciones de servicio y contrato. (Heredado de ServiceHostBase) |
InitializeRuntime() |
Inicializa el tiempo de ejecución para el host del servicio. (Heredado de ServiceHostBase) |
LoadConfigurationSection(ServiceElement) |
Carga el elemento de servicio desde el archivo de configuración o el servicio hospedado. (Heredado de ServiceHostBase) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
OnAbort() |
Anula el servicio. (Heredado de ServiceHostBase) |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
Comienza una operación asincrónica invocada en el cierre del host del servicio. (Heredado de ServiceHostBase) |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Comienza una operación asincrónica invocada en la apertura del host del servicio. (Heredado de ServiceHostBase) |
OnClose(TimeSpan) |
Cierra el servicio hospedado, incluso sus distribuidores de canal y sus contextos de instancia y agentes de escucha asociados. (Heredado de ServiceHostBase) |
OnClosed() |
Dispone de servicios descartables que se hospedan cuando se cierra el host de servicio. (Heredado de ServiceHost) |
OnClosing() |
Se invoca durante la transición de un objeto de comunicación al estado de cierre. (Heredado de CommunicationObject) |
OnEndClose(IAsyncResult) |
Completa una operación asincrónica invocada en el cierre del host del servicio. (Heredado de ServiceHostBase) |
OnEndOpen(IAsyncResult) |
Completa una operación asincrónica invocada en la apertura del host del servicio. (Heredado de ServiceHostBase) |
OnFaulted() |
Inserta el procesamiento en un objeto de comunicación después de que éste pase al estado de error debido a la invocación de una operación sincrónica de error. (Heredado de CommunicationObject) |
OnOpen(TimeSpan) |
Abre los distribuidores del canal. (Heredado de ServiceHostBase) |
OnOpened() |
Obtiene las credenciales de servicio, la autenticación de servicio y el comportamiento de autorización del servicio hospedado. (Heredado de ServiceHostBase) |
OnOpening() |
Se llama cuando la instancia WebServiceHost se abre. |
Open() |
Hace que un objeto de comunicación pase del estado creado al estado abierto. (Heredado de CommunicationObject) |
Open(TimeSpan) |
Hace que un objeto de comunicación pase del estado creado al estado abierto dentro de un intervalo de tiempo especificado. (Heredado de CommunicationObject) |
ReleasePerformanceCounters() |
Libera el servicio y los contadores de rendimiento de distribuidor de canal para el servicio hospedado. (Heredado de ServiceHostBase) |
SetEndpointAddress(ServiceEndpoint, String) |
Establece la dirección del punto de conexión especificado en la dirección especificada. (Heredado de ServiceHostBase) |
ThrowIfDisposed() |
Produce una excepción si se elimina el objeto de comunicación. (Heredado de CommunicationObject) |
ThrowIfDisposedOrImmutable() |
Produce una excepción si en el objeto de comunicación la propiedad State no está establecida en el estado Created. (Heredado de CommunicationObject) |
ThrowIfDisposedOrNotOpen() |
Produce una excepción si el objeto de comunicación no está en el estado Opened. (Heredado de CommunicationObject) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Eventos
Closed |
Se produce cuando un objeto de comunicación realiza una transición al estado de cerrado. (Heredado de CommunicationObject) |
Closing |
Se produce cuando un objeto de comunicación realiza una transición al estado de cerrando. (Heredado de CommunicationObject) |
Faulted |
Se produce cuando un objeto de comunicación realiza una transición al estado de error. (Heredado de CommunicationObject) |
Opened |
Se produce cuando un objeto de comunicación realiza una transición al estado de abierto. (Heredado de CommunicationObject) |
Opening |
Se produce cuando un objeto de comunicación realiza una transición al estado de abriendo. (Heredado de CommunicationObject) |
UnknownMessageReceived |
Se produce cuando se recibe un mensaje desconocido. (Heredado de ServiceHostBase) |
Implementaciones de interfaz explícitas
IDisposable.Dispose() |
Cierra el host del servicio. (Heredado de ServiceHostBase) |