Come eseguire output nella cache con i servizi Web in Visual C# .NET

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 318299
Per la una versione di Microsoft Visual Basic .NET di questo articolo, vedere 322744.

Contenuto dell'attività

Sommario
Nota Seguenti spazi dei nomi .NET Framework Class Library viene fatto riferimento in questo articolo:
  • System.Web.Services
  • System.Text
In questo articolo viene descritto come creare un servizio Web ASP.NET che utilizza la memorizzazione nella cache di output di esempio. La memorizzazione nella cache di output memorizza nella cache il risultato della risposta di output di un servizio Web basato sull'attributo Duration specificato per un WebMethod di corrispondente.

Nota In ASP.NET 2.0 è stato modificato da GET il metodo HTTP della pagina di prova su POST. Tuttavia, POST non vengono memorizzati nella normalmente cache. Se si modifica la pagina di prova in un'applicazione servizio Web ASP.NET 2.0 utilizzare GET, memorizzazione nella cache funziona correttamente. Inoltre, HTTP indica la che un agente utente (il browser o l'applicazione chiamante) deve essere in grado di eseguire l'override server cache impostando l'intestazione Cache-Control per "No-cache". Di conseguenza, le applicazioni ASP.NET ignorano i risultati memorizzati nella cache quando si trova un'intestazione "No-cache".

back to the top

Requisiti

Nell'elenco seguente sono indicati hardware, software, infrastruttura di rete e i service pack necessari:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server o Microsoft Windows XP
  • Microsoft .NET framework
  • Microsoft Internet Information Services (IIS)
back to the top

Creare un'applicazione di servizio Web di nuovo ASP.NET

Consente di creare una nuova applicazione di servizio Web ASP.NET denominata WSCacheSample:
  1. Avviare Visual Studio NET..
  2. Scegliere Nuovo dal menu file , quindi progetto per avviare la creazione guidata progetto.
  3. In Tipi progetto selezionare Visual C# . In modello selezionare Servizio Web ASP.NET .
  4. Nella casella percorso , sostituire "WebService #" nel percorso URL con il nome del progetto, WSCacheSample . Se si utilizza il server locale, mantenere il nome server http://localhost, in modo che la casella percorso sia simile al seguente:
    http://localhost/WSCacheSample
back to the top

Creare il servizio Web di esempio

  1. In Esplora soluzioni, fare clic con il pulsante destro del mouse sul nodo progetto, scegliere Aggiungi , quindi Aggiungi servizio Web .
  2. Per il nome, digitare CacheDemo.asmx e quindi fare clic su Apri . Il servizio Web aperta in visualizzazione struttura.
  3. Il servizio Web fare clic con il pulsante destro del mouse e quindi fare clic su Visualizza codice .
  4. Aggiungere il codice riportato di seguito al file di classe CacheDemo.asmx.cs. Aggiunge un attributo WebMethod denominato GetCacheEntryTime con un CacheDuration di 60 secondi.
    [WebMethod(CacheDuration=60)]public string GetCacheEntryTime(string Name){	StringBuilder sb = new StringBuilder("Hi ");	sb.Append(Name);	sb.Append(", the Cache entry was made at ");	sb.Append(System.DateTime.Now.ToString());		return(sb.ToString());}						
    Nota : per impostazione predefinita, il CacheDuration per un attributo WebMethod è impostato su 0, vale a dire che esso non viene memorizzata nella cache.
  5. Poiché il codice di esempio utilizza il metodo StringBuilder , includere un riferimento per lo spazio dei nomi System.Text . Elenco di spazio dei nomi per il servizio Web è simile a questo:
    using System;using System.Collections;using System.ComponentModel;using System.Data;using System.Diagnostics;using System.Web;using System.Web.Services;using System.Text;						
    Nota : per ulteriori informazioni sulla classe StringBuilder , visitare il seguente sito Web MSDN (informazioni in lingua inglese):
  6. Nell'IDE di Visual Studio .NET scegliere Genera soluzione dal menu Genera .
  7. Dal menu file scegliere Salva tutto per salvare il progetto e i file associati.
back to the top

Test del progetto

Si è creato il servizio Web di esempio CacheDemo , eseguire il GetCacheEntryTime WebMethod per visualizzare gli effetti dell'impostazione dell'attributo CacheDuration :
  1. In Esplora soluzioni, fare clic con il pulsante destro del mouse su CacheDemo.asmx e quindi fare clic su Visualizza nel browser .

    Il file con estensione ASMX apre nel browser e l'attributo WebMethod GetCacheEntryTime è elencato come un elemento puntato all'inizio della pagina.
  2. Fare clic sul collegamento GetCacheEntryTime .
  3. Nella casella nome per il metodo, digitare Joe e quindi fare clic su richiama per eseguire l'attributo WebMethod e restituire il risultato XML. Si noti il timestamp che viene restituito nel messaggio.

    Nota : se i servizi Web consentono pagina non viene visualizzata, che è possibile eseguire il metodo di servizio Web digitando quanto segue nella casella Indirizzo del Web browser:
    http://localhost/wscachesample/cachedemo.asmx/GetCacheEntryTime?Name=Joe					
  4. Eseguire nuovamente il WebMethod digitando Joe . Nota : se si esegue l'attributo WebMethod nel periodo di tempo è specificato dall'attributo CacheDuration secondo 60, viene visualizzato l'indicatore orario stesso.
  5. Ripetere il passaggio 4, ma digitare Amy invece di Giovanni nella casella Nome per il parametro dell'attributo WebMethod .

    Si noti che il risultato dell'indicatore di data e ora è diverso. Ciò si verifica perché l'output predefinito nella cache il risultato è basato sui parametri dell'attributo WebMethod . In questo esempio, è necessario Joe è il valore del parametro per i primi due test e l'output memorizzato nella cache viene restituito per il secondo test. Quando si utilizza Amy nel terzo test, viene visualizzato un nuovo risultato. Se si ripete il test in 60 secondi, verrà visualizzato un risultato memorizzato nella cache di output. Il parametro dell'attributo WebMethod è correlata la differenza tra l'output per la memorizzazione nella cache versione.
back to the top

Risoluzione dei problemi

Quando si è decidere se implementare la cache di output per il servizio Web o meno, tenere presente che server le risorse possono essere influenzate negativamente se i parametri di attributo WebMethod sono associati le richieste variano ampiamente o se le risposte prevedono grandi quantità di dati.

back to the top
Riferimenti
Per ulteriori informazioni sulla proprietà WebMethodAttribute.CacheDuration e la classe WebMethodAttribute , vedere il seguente argomento della classe di .NET Framework documentazione Library: Per ulteriori informazioni sui servizi Web, visitare i seguenti siti Web MSDN:
Linee guida di progettazione per servizi Web XML creati utilizzando ASP.NET
http://msdn2.microsoft.com/en-us/library/w8excbb0(vs.71).aspx

Utilizzo dell'attributo WebMethod
http://msdn2.microsoft.com/en-us/library/byxd99hx(vs.71).aspx
Per ulteriori esempi, documentazione e collegamenti correlate alla programmazione con .NET Framework, visitare il seguente sito CodePlex Web: back to the top

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 318299 - Ultima revisione: 08/28/2007 06:26:02 - Revisione: 6.5

Microsoft ASP.NET 1.1, Microsoft ASP.NET 1.0, Microsoft ASP.NET 2.0, Microsoft Web Services Enhancements per Microsoft .NET 1.1, Microsoft Web Services (included with the .NET Framework) 1.0 , Microsoft Visual C# .NET 2002 Standard Edition

  • kbmt kbcaching kbhowtomaster KB318299 KbMtit
Feedback