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í.
Una ServiceHost clase derivada que complementa el modelo de programación 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 clase WebServiceHost 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 ningún punto de conexión en la descripción del servicio, crea automáticamente un punto de conexión predeterminado en la dirección base del servicio para las direcciones base HTTP y HTTPS. No crea un punto de conexión automáticamente si el usuario ha configurado un punto de conexión explícitamente 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 ayuda 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 puntos de conexión 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 la solicitud HTTP como una secuencia, el WebServiceHost configura automáticamente el asignador de tipos 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 de 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 la dirección base especificados. |
Propiedades
Authentication |
Obtiene el comportamiento de autenticación del servicio. (Heredado de ServiceHostBase) |
Authorization |
Obtiene el comportamiento de autorización para el servicio hospedado. (Heredado de ServiceHostBase) |
BaseAddresses |
Obtiene las direcciones base usadas por el servicio hospedado. (Heredado de ServiceHostBase) |
ChannelDispatchers |
Obtiene la colección de distribuidores de canales utilizados por el host de servicio. (Heredado de ServiceHostBase) |
CloseTimeout |
Obtiene o establece el intervalo de tiempo permitido para que se cierre el host de servicio. (Heredado de ServiceHostBase) |
Credentials |
Obtiene la credencial del servicio hospedado. (Heredado de ServiceHostBase) |
DefaultCloseTimeout |
Obtiene el intervalo de tiempo predeterminado permitido para que se cierre el host de servicio. (Heredado de ServiceHostBase) |
DefaultOpenTimeout |
Obtiene el intervalo de tiempo predeterminado permitido para que el host de servicio se abra. (Heredado de ServiceHostBase) |
Description |
Obtiene la descripción del servicio hospedado. (Heredado de ServiceHostBase) |
Extensions |
Obtiene las extensiones para el host de servicio especificado actual. (Heredado de ServiceHostBase) |
ImplementedContracts |
Recupera los contratos implementados por el servicio hospedado. (Heredado de ServiceHostBase) |
IsDisposed |
Obtiene un valor que indica si se ha eliminado el objeto de comunicación. (Heredado de CommunicationObject) |
ManualFlowControlLimit |
Obtiene o establece el límite de 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 de servicio se abra. (Heredado de ServiceHostBase) |
SingletonInstance |
Obtiene la instancia 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() |
Hace 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 de cada contrato que se encuentran en el host de servicio con el enlace predeterminado. (Heredado de ServiceHostBase) |
AddServiceEndpoint(ServiceEndpoint) |
Agrega el punto de conexión de servicio especificado al servicio hospedado. (Heredado de ServiceHostBase) |
AddServiceEndpoint(String, Binding, String, Uri) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato, enlace, dirección de punto de conexión y URI especificados que contiene la dirección en la que escucha. (Heredado de ServiceHostBase) |
AddServiceEndpoint(String, Binding, String) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato, enlace y dirección de punto de conexión especificados. (Heredado de ServiceHostBase) |
AddServiceEndpoint(String, Binding, Uri, Uri) |
Agrega un punto de conexión de servicio al servicio hospedado con el contrato, el enlace y los URI especificados que contienen el punto de conexión y las direcciones de escucha. (Heredado de ServiceHostBase) |
AddServiceEndpoint(String, Binding, Uri) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato, un enlace y un URI especificados que contiene la dirección del punto de conexión. (Heredado de ServiceHostBase) |
AddServiceEndpoint(Type, Binding, String, Uri) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato, un enlace, una dirección de punto de conexión y un URI en el que escucha el servicio. (Heredado de ServiceHost) |
AddServiceEndpoint(Type, Binding, String) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato, enlace y dirección de punto de conexión especificados. (Heredado de ServiceHost) |
AddServiceEndpoint(Type, Binding, Uri, Uri) |
Agrega un punto de conexión de servicio al servicio hospedado con un contrato, un enlace, un URI que contiene la 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, un enlace y un URI especificados que contiene la dirección del punto de conexión. (Heredado de ServiceHost) |
ApplyConfiguration() |
Carga la descripción del servicio desde el archivo de configuración y la aplica al entorno 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() |
Hace que un objeto de comunicación pase de su estado actual al estado cerrado. (Heredado de CommunicationObject) |
Close(TimeSpan) |
Hace que un objeto de comunicación pase de 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 al objeto actual. (Heredado de Object) |
Fault() |
Hace que un objeto de comunicación pase de su estado actual al estado defectuoso. (Heredado de CommunicationObject) |
GetCommunicationObjectType() |
Obtiene el tipo de objeto de comunicación. (Heredado de CommunicationObject) |
GetHashCode() |
Actúa como función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
IncrementManualFlowControlLimit(Int32) |
Aumenta el límite de la velocidad de flujo de mensajes al servicio hospedado mediante un incremento especificado. (Heredado de ServiceHostBase) |
InitializeDescription(Object, UriSchemeKeyedCollection) |
Inicializa una descripción del servicio hospedado en función de su instancia y de las direcciones base especificadas. (Heredado de ServiceHost) |
InitializeDescription(Type, UriSchemeKeyedCollection) |
Inicializa una descripción del servicio hospedado en función de su tipo y direcciones base especificadas. (Heredado de ServiceHost) |
InitializeDescription(UriSchemeKeyedCollection) |
Crea e inicializa el host de servicio con las descripciones del contrato y del servicio. (Heredado de ServiceHostBase) |
InitializeRuntime() |
Inicializa el tiempo de ejecución para el host de servicio. (Heredado de ServiceHostBase) |
LoadConfigurationSection(ServiceElement) |
Carga el elemento de servicio desde el archivo de configuración del servicio hospedado. (Heredado de ServiceHostBase) |
MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
OnAbort() |
Anula el servicio. (Heredado de ServiceHostBase) |
OnBeginClose(TimeSpan, AsyncCallback, Object) |
Comienza una operación asincrónica invocada al cierre del host de servicio. (Heredado de ServiceHostBase) |
OnBeginOpen(TimeSpan, AsyncCallback, Object) |
Comienza una operación asincrónica invocada al abrir el host de servicio. (Heredado de ServiceHostBase) |
OnClose(TimeSpan) |
Cierra el servicio hospedado, incluidos sus distribuidores de canales y contextos de instancia asociados y agentes de escucha. (Heredado de ServiceHostBase) |
OnClosed() |
Elimina los 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 al cerrar el host de servicio. (Heredado de ServiceHostBase) |
OnEndOpen(IAsyncResult) |
Completa una operación asincrónica invocada al abrir el host de servicio. (Heredado de ServiceHostBase) |
OnFaulted() |
Inserta el procesamiento en un objeto de comunicación después de realizar la transición al estado defectuoso debido a la invocación de una operación de error sincrónica. (Heredado de CommunicationObject) |
OnOpen(TimeSpan) |
Abre los distribuidores del canal. (Heredado de ServiceHostBase) |
OnOpened() |
Obtiene las credenciales de servicio, la autenticación del servicio y el comportamiento de autorización del servicio hospedado. (Heredado de ServiceHostBase) |
OnOpening() |
Se llama cuando se abre la instancia de WebServiceHost. |
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 los contadores de rendimiento del servicio y del distribuidor del canal para el servicio hospedado. (Heredado de ServiceHostBase) |
SetEndpointAddress(ServiceEndpoint, String) |
Establece la dirección del punto de conexió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 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 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 pasa al estado cerrado. (Heredado de CommunicationObject) |
Closing |
Se produce cuando un objeto de comunicación pasa al estado de cierre. (Heredado de CommunicationObject) |
Faulted |
Se produce cuando un objeto de comunicación pasa al estado defectuoso. (Heredado de CommunicationObject) |
Opened |
Se produce cuando un objeto de comunicación pasa al estado abierto. (Heredado de CommunicationObject) |
Opening |
Se produce cuando un objeto de comunicación pasa al estado de apertura. (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) |