WebMethodAttribute.CacheDuration Właściwość

Definicja

Pobiera lub ustawia liczbę sekund, w których powinna znajdować się odpowiedź w pamięci podręcznej.

C#
public int CacheDuration { get; set; }

Wartość właściwości

Liczba sekund, w których powinna znajdować się odpowiedź w pamięci podręcznej. Wartość domyślna to 0, co oznacza, że odpowiedź nie jest buforowana.

Przykłady

Poniższy przykład umieszcza wynik wywołania ServiceUsage metody usługi sieci Web XML w pamięci podręcznej przez 60 sekund. Za każdym razem, gdy klient usługi sieci Web XML wykonuje metodę ServiceUsage usługi sieci Web XML w tym czasie, zwracany jest ten sam wynik.

ASP.NET (C#)
<%@ 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"];
     }
}

Uwagi

Gdy buforowanie jest włączone, żądania i odpowiedzi są przechowywane w pamięci na serwerze przez co najmniej czas trwania pamięci podręcznej, dlatego należy zachować ostrożność, jeśli oczekujesz, że żądania lub odpowiedzi będą bardzo duże lub oczekujesz, że żądania będą się znacznie różnić.

Istnieją dwa problemy, które mogą mieć wpływ na buforowanie danych wyjściowych w aplikacji usługi internetowej ASP.NET 2.0.

W ASP.NET 2.0 metoda HTTP strony testowej zmieniła się z GET na POST. Jednak poSTs nie są zwykle buforowane. Jeśli zmienisz stronę testową w aplikacji usługi internetowej ASP.NET 2.0 w celu korzystania z polecenia GET, buforowanie działa prawidłowo.

Ponadto protokół HTTP wskazuje, że agent użytkownika (przeglądarka lub aplikacja wywołująca) powinien mieć możliwość zastąpienia buforowania serwera przez ustawienie opcji "Cache-Control" na "no-cache". ASP.NET w związku z tym aplikacje ignorują buforowane wyniki, gdy znajdą nagłówek "no-cache".

Dotyczy

Produkt Wersje
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1