Como efectuar a saída de colocação em cache com serviços Web no Visual C# .NET

Traduções de Artigos Traduções de Artigos
Artigo: 318299 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Nota Os espaços de nomes seguintes biblioteca de classes do .NET Framework são referenciados neste artigo:
  • System.Web.Services
  • System.Text
Este artigo passo a passo descreve como criar um serviço Web ASP.NET que utiliza a cache de saída de exemplo. A cache de saída coloca em cache o resultado de resposta de saída de um serviço Web baseado o atributo de duração for especificado para um WebMethod correspondente.

Nota No ASP.NET 2.0, o método HTTP da página de teste foi alterado de GET para POST. No entanto, POST não é armazenadas em normalmente cache. Se alterar GET a página de teste numa aplicação de serviço Web ASP.NET 2.0 para utilizar a colocação em cache funciona correctamente. Além disso, HTTP indica que um agente de utilizador (o browser ou aplicação de chamada) deve ser possível substituir o servidor de colocação em cache definindo o cabeçalho Cache-Control para "no-cache." Por este motivo, as aplicações do ASP.NET ignorar resultados em cache quando se encontrarem um cabeçalho "no-cache".

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs são necessários:
  • Microsoft Windows 2000 Professional, Microsoft Windows 2000 Server, Microsoft Windows 2000 Advanced Server ou Microsoft Windows XP
  • Microsoft .NET framework
  • Microsoft Internet Information Services (IIS)

Criar uma aplicação nova serviço Web do ASP.NET

Criar uma nova aplicação ASP.NET Web Service chamada WSCacheSample:
  1. Inicie o Visual Studio NET..
  2. No menu ficheiro , aponte para Novo e, em seguida, clique em Project para iniciar o Assistente para nova Project.
  3. Em tipos de projecto , seleccione Visual C# . Em modelos , seleccione o Serviço Web do ASP.NET .
  4. Na caixa localização , substitua "WebService #" no caminho de URL com o nome do projecto, WSCacheSample . Se estiver a utilizar o servidor local, deixe o nome do servidor como http://localhost, para que caixa localização é semelhante à seguinte:
    http://localhost/WSCacheSample

Criar o serviço Web de exemplo

  1. No Solution Explorer, clique com o botão direito do rato no nó de projecto, aponte para Adicionar e, em seguida, clique em Adicionar serviço Web .
  2. Para o nome, escreva CacheDemo.asmx e, em seguida, clique em Abrir . O serviço Web abre na vista de estrutura.
  3. Clique com o botão direito do rato no serviço Web e, em seguida, clique em Código .
  4. Adicione o seguinte código ao ficheiro de classe CacheDemo.asmx.cs. Esta acção adiciona um atributo WebMethod denominado GetCacheEntryTime com um CacheDuration de 60 segundos.
    [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 : por predefinição, o CacheDuration para um atributo ' WebMethod é definido como 0, o que significa que este não é na cache.
  5. Uma vez que o código de exemplo utiliza o método de StringBuilder , incluir uma referência ao espaço de nomes System.Text . A lista de espaço de nomes para o serviço Web aspecto:
    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 : para obter mais informações sobre a classe de StringBuilder , visite o seguinte Web site da Microsoft Developer Network (MSDN):
    Classe de StringBuilder
    http://msdn2.microsoft.com/en-us/library/system.text.stringbuilder(vs.71).aspx
  6. No IDE .NET do Visual Studio, clique em Criar soluções , no menu criar .
  7. No menu ficheiro , clique em Guardar tudo para guardar o projecto e os ficheiros associados.

Testar o projecto

Agora que criou o exemplo CacheDemo serviço da Web, execute o GetCacheEntryTime WebMethod para ver os efeitos da definição de atributo CacheDuration :
  1. No Solution Explorer, clique com o botão direito do rato CacheDemo.asmx e, em seguida, clique em Ver no browser .

    O ficheiro .asmx é aberto no browser e o atributo de WebMethod GetCacheEntryTime é listado como um item com marcas na parte superior da página.
  2. Clique na hiperligação GetCacheEntryTime .
  3. Na caixa nome para o método, escreva o José e clique em Invoke para executar o atributo ' WebMethod e devolver o resultado XML. Repare o carimbo que é devolvido na mensagem.

    Nota : Se o WebServices ajudam página não aparecer, pode executar o método WebService escrevendo o seguinte na caixa Endereço na Web browser:
    http://localhost/wscachesample/cachedemo.asmx/GetCacheEntryTime?Name=Joe
    					
  4. Execute novamente o WebMethod escrevendo João . Nota : Se o atributo WebMethod o segundo período de tempo especificado pelo atributo CacheDuration 60, aparece o mesmo carimbo.
  5. Repita o passo 4, mas escrever Amy em vez do José na caixa Nome do parâmetro de atributo WebMethod .

    Repare que o resultado de carimbo de data / hora é diferente. Isto ocorre porque o resultado predefinido da cache resultado é baseado nos parâmetros do atributo ' WebMethod . Neste exemplo, João é o valor do parâmetro para os dois primeiros testes e a saída em cache é devolvida para o segundo teste. Quando utiliza Amy no terceiro teste, receberá um resultado novo. Se repetir o teste de 60 segundos, receberá um resultado de saída em cache. A diferença no resultado da Colocação em cache versão está relacionado com o parâmetro do atributo ' WebMethod .

Resolução de problemas

Quando decidir se deve ou não implementar a cache de saída para o serviço Web, lembre-se esse servidor recursos podem ser afectados negativamente se os parâmetros de atributo WebMethod que estão associados com os pedidos variam significativamente ou se as respostas envolvem grandes quantidades de dados.

Referências

Para obter mais informações sobre a propriedade WebMethodAttribute.CacheDuration e a classe de WebMethodAttribute , consulte o tópico seguinte na classe Framework .NET biblioteca de documentação:
Propriedade WebMethodAttribute.CacheDuration
http://msdn2.microsoft.com/en-us/library/system.web.services.webmethodattribute.cacheduration(vs.71).aspx
Para obter informações adicionais sobre serviços Web, visite os seguintes Web sites da MSDN:
Directrizes de concepção para XML Web Services criados com o ASP.NET
http://msdn2.microsoft.com/en-us/library/w8excbb0(vs.71).aspx

Utilizar o atributo ' WebMethod
http://msdn2.microsoft.com/en-us/library/byxd99hx(vs.71).aspx
Para exemplos adicionais, documentação e hiperligações relacionadas com programação com o .NET Framework, visite o seguinte site da CodePlex:
http://www.codeplex.com

Propriedades

Artigo: 318299 - Última revisão: 28 de agosto de 2007 - Revisão: 6.5
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.1
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 2.0
  • Microsoft Web Services Enhancements for Microsoft .NET 1.1
  • Microsoft Web Services (included with the .NET Framework) 1.0
  • Microsoft Visual C# .NET 2002 Standard Edition
Palavras-chave: 
kbmt kbcaching kbhowtomaster KB318299 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 318299

Submeter comentários

 

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