Hospedaje de IIS utilizando código en línea
Este ejemplo muestra cómo implementar un servicio hospedado por Internet Information Services (IIS), donde el código de servicio está contenido en línea en un archivo .svc y se compila a petición. El código de servicio también se puede implementar directamente en los archivos de código de origen situado en el directorio \App_Code de la aplicación o compilado en un ensamblado implementado en \bin. Este ejemplo no muestra estas técnicas.
Nota: |
---|
El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema. |
Nota: |
---|
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (valor predeterminado) antes de continuar.
<InstallDrive>: \WF_WCF_Samples
Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de WF y Windows Communication Foundation (WCF). Este ejemplo se encuentra en el siguiente directorio.
<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Services\Hosting\WebHost\InlineCode
|
El ejemplo muestra un servicio típico que implementa un contrato que define un modelo de comunicación solicitud-respuesta. El servicio se hospeda en IIS y el código de servicio se contiene completamente en el archivo Service.svc. El primer mensaje enviado al servicio permite que éste se active en el host y se compile a petición. No es necesario realizar una compilación previa. El servicio implementa un contrato ICalculator
tal y como se define en el código siguiente:
// Define a service contract.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface ICalculator
{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}
La implementación del servicio calcula y devuelve el resultado adecuado.
<%@ServiceHost language=c# Debug="true" Service="Microsoft.ServiceModel.Samples.CalculatorService" %>
…
// Service class that implements the service contract.
public class CalculatorService : ICalculator
{
public double Add(double n1, double n2)
{
return n1 + n2;
}
public double Subtract(double n1, double n2)
{
return n1 - n2;
}
public double Multiply(double n1, double n2)
{
return n1 * n2;
}
public double Divide(double n1, double n2)
{
return n1 / n2;
}
}
Al ejecutar el ejemplo, las solicitudes y respuestas de la operación se muestran en la ventana de la consola del cliente. Presione Entrar en la ventana de cliente para cerrar el cliente.
Add(100,15.99) = 115.99
Subtract(145,76.54) = 68.46
Multiply(9,81.25) = 731.25
Divide(22,7) = 3.14285714285714
Press <ENTER> to terminate client.
Para configurar, compilar y ejecutar el ejemplo
Asegúrese de que ha realizado Procedimiento de instalación única para los ejemplos de Windows Communication Foundation.
Para compilar el código de la edición .NET de C# o Visual Basic de la solución, siga las instrucciones de Compilación de los ejemplos de Windows Communication Foundation.
Una vez compilada la solución, ejecute setup.bat para configurar la aplicación ServiceModelSamples en IIS 7.0. El directorio ServiceModelSamples debería aparecer ahora como una aplicación de IIS 7.0.
Para ejecutar el ejemplo en una configuración de equipos única o cruzada, siga las instrucciones de Running the Windows Communication Foundation Samples. Para obtener un ejemplo de cómo crear una aplicación cliente que pueda llamar a este servicio, vea Creación de un cliente de Windows Communication Foundation.