Comportamiento de servicio predeterminado
Este ejemplo muestra cómo se pueden configurar los valores del comportamiento de servicio. El ejemplo se basa en Ejemplo de introducción que implementa el contrato de servicio ICalculator
. Este ejemplo define explícitamente los comportamientos del servicio y de la operación mediante los atributos ServiceBehaviorAttribute y OperationBehaviorAttribute. Los comportamientos también se pueden configurar en archivos de configuración o de manera imperativa en el código.
En este ejemplo, el cliente es una aplicación de consola (.exe) e Internet Information Services (IIS) hospeda el servicio.
Nota
El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.
La clase de servicio especifica comportamientos con ServiceBehaviorAttribute y OperationBehaviorAttribute, tal y como se muestra en el ejemplo de código siguiente. Todos los valores especificados son valores predeterminados.
[ServiceBehavior(
AutomaticSessionShutdown=true,
ConcurrencyMode=ConcurrencyMode.Single,
InstanceContextMode=InstanceContextMode.PerSession,
IncludeExceptionDetailInFaults=false,
UseSynchronizationContext=true,
ValidateMustUnderstand=true)]
public class CalculatorService : ICalculator
{
[OperationBehavior(
TransactionAutoComplete=true,
TransactionScopeRequired=false,
Impersonation=ImpersonationOption.NotAllowed)]
public double Add(double n1, double n2)
{
System.Threading.Thread.Sleep(1600);
return n1 + n2;
}
...
}
Los comportamientos del servicio se especifican con el atributo ServiceBehaviorAttribute. La tabla siguiente describe algunos de estos comportamientos.
Comportamiento de servicio | Descripción |
---|---|
Se cierra automáticamente una sesión cuando lo solicita el cliente. |
|
Especifica el modo de simultaneidad para cada instancia del servicio. |
|
Especifica el modo de contexto de instancia. |
|
Determina si utilizar el contexto de sincronización proporcionado, si se ha establecido uno. Utilice esto cuando desee controlar si usar un WindowsFormsSynchronizationContext en aplicaciones de Windows Forms. |
|
Determina si las excepciones de ejecución no controladas generales se convertirán en Fault<string> y se enviará como un mensaje de error. |
|
Especifica el nivel de aislamiento de las transacciones. |
|
Determina si los encabezados inesperados del mensaje producen un error. |
Los comportamientos de la operación se especifican utilizando el atributo OperationBehaviorAttribute. La tabla siguiente describe algunos de estos comportamientos.
Comportamiento de la operación | Descripción |
---|---|
Determina si la realización de la operación del servicio confirma la transacción actual. |
|
Determina si la operación del servicio da de alta en una transacción fluida del cliente. |
|
Determina si la operación de servicio suplanta la identidad del autor de la llamada. |
|
Determina si las instancias del servicio se reciclan en el inicio o final de la llamada de operación de servicio. |
Al ejecutar el ejemplo, las solicitudes y respuestas de la operación se muestran en la ventana de la consola del cliente. El retraso entre las llamadas es el resultado de las llamadas a System.Threading.Thread.Sleep() realizadas en las operaciones del servicio. El resto de los ejemplos de comportamiento explica con más detalle estos comportamientos. 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, generar y ejecutar el ejemplo
Asegúrese de que ha realizado el Procedimiento de instalación único para ejemplos de Windows Communication Foundation.
Para generar el código C# o Visual Basic .NET Edition de la solución, siga las instrucciones de Generación de ejemplos de Windows Communication Foundation.
Para ejecutar el ejemplo en una configuración de equipos única o cruzada, siga las instrucciones de Ejecución de ejemplos de Windows Communication Foundation.
Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.