Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

WebMethodAttribute.CacheDuration (Propiedad)

Obtiene o establece el número de segundos durante los cuales la respuesta se almacena en la caché.

Espacio de nombres:  System.Web.Services
Ensamblado:  System.Web.Services (en System.Web.Services.dll)
public int CacheDuration { get; set; }

Valor de propiedad

Tipo: System.Int32
Número de segundos durante los cuales la respuesta se almacena en la caché. El valor predeterminado es 0, lo que significa que la respuesta no se almacena en la caché.

Cuando se habilita el almacenamiento en caché, las preguntas y respuestas se almacenan en la memoria del servidor al menos durante la duración del almacenamiento en caché, por lo tanto, se debe actuar con precaución si se espera que las preguntas y las respuestas puedan ser muy largas o que las preguntas puedan variar ampliamente.

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 que 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é.

En el siguiente ejemplo, el resultado de la llamada al método de servicios Web XML ServiceUsage se coloca en la caché durante 60 segundos. Siempre que el cliente de servicios Web XML ejecuta el método de servicios Web XML ServiceUsage durante ese período de tiempo, se devuelve el mismo resultado.


<%@ WebService Language="C#" Class="Counter" %>

using System.Web.Services;
using System;
using System.Web;

public class Counter : WebService {

     [ WebMethod(Description="Number of times this service has been accessed",
     CacheDuration=60,MessageName="ServiceUsage") ]
     public int ServiceUsage() {
          // If the XML Web service has not been accessed, initialize it to 1.
          if (Application["MyServiceUsage"] == null) {
              Application["MyServiceUsage"] = 1;
          }
          else {
              // Increment the usage count.
              Application["MyServiceUsage"] = ((int) Application["MyServiceUsage"]) + 1;
          }

          // Return the usage count.     
          return  (int) Application["MyServiceUsage"];
     }
}



.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar