Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En el ejemplo SelfHost se muestra cómo implementar un servicio autohospedado en una aplicación de consola. Este ejemplo se basa en la introducción. Se ha cambiado el nombre del archivo de configuración del servicio de Web.config a App.config y se modificó para configurar una dirección base, que usa el host. El código fuente del servicio se ha modificado para implementar una función estática Main
que crea y abre un host de servicio que proporciona la dirección base configurada. Se ha modificado la implementación del servicio para registrar la salida en la consola en cada operación. El cliente no se ha modificado, excepto para configurar la dirección de punto de conexión correcta del servicio.
Nota:
El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.
El ejemplo implementa una función principal estática para crear un ServiceHost para el tipo especificado CalculatorService
, como se muestra en el código de ejemplo siguiente.
// Host the service within this EXE console application.
public static void Main()
{
// Create a ServiceHost for the CalculatorService type.
using (ServiceHost serviceHost =
new ServiceHost(typeof(CalculatorService)))
{
// Open the ServiceHost to create listeners
// and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
}
}
Cuando un servicio se hospeda en Internet Information Services (IIS) o en el Servicio de activación de procesos de Windows (WAS), el entorno de hospedaje proporciona la dirección base del servicio. En el caso de que sea autohospedado, deberá especificar la dirección base. Esto se hace mediante el elemento add
, hijo de <baseAddresses>, hijo del <host>, hijo del <servicio>, tal como se muestra en la siguiente configuración de ejemplo.
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/ServiceModelSamples/service"/>
</baseAddresses>
</host>
...
</service>
Al ejecutar el ejemplo, las solicitudes de operación y las respuestas se muestran en las ventanas de servicio y consola de cliente. Presione Entrar en cada ventana de la consola para cerrar el servicio y el cliente.
Para configurar, compilar y ejecutar el ejemplo
Asegúrese de que ha realizado el procedimiento de instalación única para los ejemplos de Windows Communication Foundation.
Para compilar el código C# o Visual Basic .NET Edition de la solución, siga las instrucciones de Building the Windows Communication Foundation Samples.
Para ejecutar el ejemplo en una configuración con un solo equipo o con varios, siga las instrucciones que se indican en Ejecución de los ejemplos de Windows Communication Foundation.