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

Traduzione articoli Traduzione articoli
Identificativo articolo: 318299 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

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".

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)

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

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):
    Classe StringBuilder
    http://msdn2.microsoft.com/en-us/library/system.text.stringbuilder(vs.71).aspx
  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.

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.

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.

Riferimenti

Per ulteriori informazioni sulla proprietà WebMethodAttribute.CacheDuration e la classe WebMethodAttribute , vedere il seguente argomento della classe di .NET Framework documentazione Library:
Proprietà WebMethodAttribute.CacheDuration
http://msdn2.microsoft.com/en-us/library/system.web.services.webmethodattribute.cacheduration(vs.71).aspx
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:
http://www.codeplex.com

Proprietà

Identificativo articolo: 318299 - Ultima modifica: martedì 28 agosto 2007 - Revisione: 6.5
Le informazioni in questo articolo si applicano a:
  • 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
Chiavi: 
kbmt kbcaching kbhowtomaster KB318299 KbMtit
Traduzione automatica articoli
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
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com