Cómo: Habilitar el almacenamiento en la memoria caché de resultados del lado del servidor para un servicio web

El ejemplo de código siguiente muestra cómo utilizar la propiedad CacheDuration en métodos de servicio Web para especificar el almacenamiento en la caché de resultados para un período de 60 segundos. Este ejemplo muestra una de las instrucciones explicadas en el tema, Diseñar instrucciones para los servicios web XML creados mediante ASP.NET.

Hay dos aspectos que pueden afectar al almacenamiento en la caché de resultados en una aplicación de servicio Web ASP.NET 2.0.

En ASP.NET 2.0, el método HTTP de la página de prueba se ha cambiado de GET a POST. Sin embargo, los métodos POST normalmente no se almacenan en caché. Si cambia la página de prueba de una aplicación de servicio Web ASP.NET 2.0 para utilizar GET, el almacenamiento en caché funciona correctamente.

Además, HTTP indica que un agente de usuario (el explorador o la aplicación que realiza la llamada) debe tener la capacidad de anular el almacenamiento en caché del servidor estableciendo la directiva de control de caché en no caché. Por consiguiente, las aplicaciones ASP.NET omiten los resultados almacenados en caché si encuentran un encabezado que indica que no se debe utilizar el almacenamiento en caché.

Ejemplo

<%@ WebService Language="C#" Class="MathService" %>
using System;
using System.Web.Services;
public class MathService : WebService {
   [WebMethod(CacheDuration=60)]
   public float Add(float a, float b)
   {
       return a + b;
   }
   [WebMethod(CacheDuration=60)]
   public float Subtract(float a, float b)
   {
       return a - b;
   }
   [WebMethod(CacheDuration=60)]
   public float Multiply(float a, float b)
   {
       return a * b;
   }
   [WebMethod(CacheDuration=60)]
   public float Divide(float a, float b)
   {
       if (b==0) return -1;
       return a / b;
   }
}  
<%@ WebService Language="VB" Class="MathService" %>
Imports System
Imports System.Web.Services
Public Class MathService
    Inherits WebService 
    <WebMethod(CacheDuration := 60)> _
    Public Function Add(a As Single, b As Single) As Single
        Return a + b
    End Function

    <WebMethod(CacheDuration := 60)> _
    Public Function Subtract(a As Single, b As Single) As Single
        Return a - b
    End Function

    <WebMethod(CacheDuration := 60)> _
    Public Function Multiply(a As Single, b As Single) As Single
        Return a * b
    End Function

    <WebMethod(CacheDuration := 60)> _
    Public Function Divide(a As Single, b As Single) As Single
        If b = 0 Then
            Return - 1
        End If
        Return a / b
    End Function
End Class

Consulte también

Tareas

Cómo: Habilitar el almacenamiento en la caché de resultados en un cliente de servicios web

Conceptos

Instrucciones de diseño para servicios web XML creados con ASP.NET

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.