Compartir a través de


WebServiceHost Clase

Definición

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)

Se aplica a