Modelo de código para Web Services em código gerenciado
Os serviços da Web consistem em duas partes: o ponto de entrada de serviço da Web e o código que implementa a funcionalidade do serviço Web.No ASP.NET, o arquivo.asmx é um arquivo de texto que serve sistema autônomo ponto de entrada endereçável para serviço Web.Ele faz referência a código assemblies pré-compilados, um arquivo code-behind, ou a código contido no próprio arquivo.asmx.
Observação: |
---|
Se o código estiver contido na.asmx arquivo diretamente, em seguida, ASP.NET irá compilá-lo sob demanda no servidor. |
The WebServicediretiva de processamento de na parte superior do arquivo.asmx determina onde localizar a implementação do serviço Web.Por padrão, o Visual Studio usa arquivos code-behind, sistema autônomo Service1.asmx.vb ou Service1.asmx.cs, quando você cria um serviço Web com o modelo de projeto serviço Web ASP.NET.
Observação: |
---|
O Visual Studio não oferece suporte à compilação entre linguagens.Por exemplo, não é possível incluir um Visual Web translation from VPE for Csharp serviço em um projeto Visual Basic ASP.NET Web aplicativo Web e vice-versa. |
Quando você cria um serviço Web em código gerenciado, o ASP.NET fornece a infra-estrutura automaticamente e lida com o processamento de solicitações de serviço Web e respostas, incluindo a análise e criação de mensagens SOAP.
Diretiva de Processamento WebService
Na parte superior da .asmx a página é um WebServicediretiva de processamento de , que inclui informações na forma de atributos de implementação do serviço Web.Esta diretiva de processamento fornece informações necessárias para o ambiente ASP.NET, sistema autônomo qual classe implementa a funcionalidade do serviço Web.Segue um exemplo da diretiva de processamentoWebService:
[Visual Basic]
<%@ WebService Language="vb" Codebehind="Service1.asmx.vb"
Class="WebService1.Service1" %>
[C#]
<%@ WebService Language="c#" Codebehind="Service1.asmx.cs"
Class="WebService1.Service1" %>
The Idioma atributo indica a linguagem de programação usada para desenvolver serviço Web.Você pode criar serviços da Web em qualquer linguagem compatível com .NET, sistema autônomo Visual Basic .NET ou Visual translation from VPE for Csharp.
Ao criar Web services em código gerenciado usando o Visual Studio. NET, a implementação do serviço Web reside em um arquivo code-behind.O arquivo code-behind está associado a página .asmx usando o Codebehind atributo.
Observação: |
---|
Esse atributo ajuda Visual S tudio para gerenciar sua Web projeto de serviço e não é necessário no tempo de execução. |
Ao usar o modelo de projeto ASP.NET serviço Web, o Classe atributo indica qual classe no arquivo code-behind implementa a funcionalidade do serviço Web.
Visual Studio .NET insere essa diretiva processamento automaticamente no arquivo.asmx quando você usar o modelo de projeto Web Service do ASP.NET.
Dica: |
---|
Se você optar por renomear a classe, certifique-se de alterar o nome de classe a Classe atributo de do WebService diretiva. |
Observação: |
---|
Para exibir o Sumário da.asmx arquivos em Solution Explorer, right-click the .asmx file and click Open With on the shortcut menu.Na caixa de diálogo Open With , selecione Source Code (Text) Editor e clique Open. |
Para obter mais informações, consulte Passo a passo: Building a Serviço Web XML Basic Using ASP.NET.
Classe System.Web.Services.WebService
A classe sistema.Web.Services.WebService, que define a classe base opcional para sistema autônomo serviços da Web, fornece acesso direto a objetos ASP.NET comuns, sistema autônomo sistema autônomo de aplicativo e sessão de estado.Por padrão, o Web services criados no código gerenciado usando o Visual Studio herdam desta classe.serviço Web pode herdar desta classe para obter acesso a objetos intrínsecos do ASP.NET, tais sistema autônomo solicitação e sessão.Para obter mais informações, consulte Classe WebService.
Se serviço Web não não herdar desta classe, ele pode acessar os objetos intrínsecos do ASP.NET de sistema.Web.HttpContext.corrente.A classe que implementa serviço Web deve ser pública e deve ter um construtor público padrão (um construtor sem parâmetros).Isso torna possível para o ASP.NET criar uma instância da classe de serviço Web para processar solicitações de serviço Web de entrada.Para obter mais informações, consulte Propriedade HttpContext.Current.
[Visual Basic]
Imports System.Web.Services
Public Class Service1
Inherits System.Web.Services.WebService
' Implementation code.
End Class
[C#]
using System.Web.Services;
public class Service1 : System.Web.Services.WebService
{
// Implementation code.
}
Para obter mais informações, consulte Herança da classe WebService.
Atributo WebService
Cada serviço Web requer um namespace exclusivo, que possibilita que aplicativos cliente diferenciar entre os serviços da Web que podem usar o mesmo nome de método.O namespace padrão para Web services criados no Visual Studio .NET é"http://tempuri.org/WebService1/Service1"onde WebService1 é o nome do projeto e Service1 é o nome de classe. Embora o namespace se pareça com uma URL comum, você não deve assumir que é visível em um navegador da Web, ele é simplesmente um identificador exclusivo.
Observação: |
---|
Convém fornecer uma página da Web nesse local que contém informações sobre a Web serviços que você fornecer. |
Usando o WebService atributo, você pode especificar o namespace e forneçer uma breve descrição do serviço Web.Breve descrição aparecerá na página de Ajuda do serviço quando você chamar serviço Web de um navegador sem especificar uma seqüência de caracteres de consulta:
[Visual Basic]
<System.Web.Services.WebService( _
Namespace:="http://tempuri.org/WebService1/Service1", _
Description:="A short description of the Web service.")> _
Public Class Service1
Inherits System.Web.Services.WebService
' Implementation code.
End Class
[C#]
[System.Web.Services.WebService(
Namespace="http://tempuri.org/WebService1/Service1",
Description="A short description of the Web service.")]
public class Service1 : System.Web.Services.WebService
{
// Implementation code.
}
Para obter mais informações, consulte Classe WebServiceAttribute e Usando o atributo WebService.
Aplicando o atributo WebMethod
Para expor um método sistema autônomo parte de um serviço Web, você deve colocar um WebMethod atributo antes da declaração de cada método público que você deseja expor.Para obter mais informações, consulte Como: Criar um método do serviço Web.
[Visual Basic]
<System.Web.Services.WebMethod()> _
Public Function MyString(ByVal x as string) As String
' Implementation code.
End Function
[C#]
[System.Web.Services.WebMethod()]
public string MyString(string x)
{
//implementation code
}
O atributo WebMethod contém várias propriedades para configurar o comportamento do serviço Web.Para obter mais informações, consulte Classe WebMethodAttribute e Usando o atributo WebMethod.Por exemplo, você pode usar esse atributo para fornecer uma descrição breve que irá aparecer na página de ajuda associada do serviço:
[Visual Basic]
<System.Web.Services.WebMethod( _
Description:="A short description of this method.")> _
Public Function MyString(ByVal x as string) As String
' Implementation code.
End Function
[C#]
[System.Web.Services.WebMethod(
Description="A short description of this method.")]
public string MyString(string x)
{
// Implementation code.
}
Separe múltiplas propriedades com uma vírgula.Por exemplo, para fornecer uma descrição e armazenar em cache os resultados de um serviço Web por 60 segundos:
[Visual Basic]
<System.Web.Services.WebMethod( _
Description:="A short description of this method.", _
CacheDuration:=60)> _
Public Function MyString(ByVal x as string) As String
' Implementation code.
End Function
[C#]
[System.Web.Services.WebMethod(
Description="A short description of this method.",
CacheDuration=60)]
public string MyString(string x)
{
// Implementation code.
}
Resumo
Cada serviço Web consiste em um arquivo .asmx e uma classe de serviço Web.O arquivo.asmx contém uma diretiva de processamento WebService que faz referência à classe.A classe serviço Web é pública, possui um construtor público padrão e contém um ou mais métodos públicos marcados com o WebMethod atributo.O diagrama a seguir mostra a relação entre o projeto, a classe, seus métodos e serviço Web resultante.
Classes WebService e Itens Resultantes
Consulte também
Conceitos
Modelo de código para acessar serviços Web no código gerenciado