Bebecê em Verniz Bege Scarpin Bico Fino Scarpin em Feminino qI7xHH

Toda a comunicação com um serviço do Windows Communication Foundation (WCF) ocorre por meio de seus pontos de extremidade.All communication with a Windows Communication Foundation (WCF) service occurs through its endpoints. Cada ServiceEndpoint contém uma Address, um Bindinge um Contract.Each ServiceEndpoint contains an Address, a Binding, and a Contract. O contrato especifica quais operações estão disponíveis.The contract specifies which operations are available. A associação especifica como se comunicar com o serviço e o endereço Especifica onde encontrar o serviço.The binding specifies how to communicate with the service, and the address specifies where to find the service. Cada ponto de extremidade deve ter um endereço exclusivo.Every endpoint must have a unique address. O endereço do ponto de extremidade é representado pela EndpointAddress classe, que contém um identificador de URI (Uniform Resource) que representa o endereço do serviço, um Identity, que representa a identidade de segurança do serviço e uma coleção de opcional Headers.The endpoint address is represented by the EndpointAddress class, which contains a Uniform Resource Identifier (URI) that represents the address of the service, an Identity, which represents the security identity of the service, and a collection of optional Headers. Os cabeçalhos opcionais fornecem informações mais detalhadas de endereçamento para identificar ou interagir com o ponto de extremidade.The optional headers provide more detailed addressing information to identify or interact with the endpoint. Por exemplo, os cabeçalhos podem indicar qual instância de um serviço para usar para processar uma mensagem de entrada de um determinado usuário, quando várias instâncias estiverem disponíveis, onde o ponto de extremidade deve enviar uma mensagem de resposta ou como processar uma mensagem de entrada.For example, headers can indicate how to process an incoming message, where the endpoint should send a reply message, or which instance of a service to use to process an incoming message from a particular user when multiple instances are available.

Definição de um endereço de ponto de extremidadeDefinition of an Endpoint Address

No WCF, um EndpointAddress modela uma referência de ponto de extremidade (EPR) conforme definido no padrão de WS-Addressing.Pietra Preto Pietra Preto Fernandes Rasteira Concha Concha Fernandes e Rasteira Concha e Pietra Pedra Rasteira e Pedra Fernandes 0qxA7In WCF, an EndpointAddress models an endpoint reference (EPR) as defined in the WS-Addressing standard.Sandália Preto Pata Meia em Lolla Sandália Meia Suede Feminina Santa 1dxqHx

O endereço URI para a maioria dos transportes tem quatro partes.The address URI for most transports has four parts. Por exemplo, esse URI, http://www.fabrikam.com:322/mathservice.svc/secureEndpoint tem as seguintes quatro partes:For example, this URI, http://www.fabrikam.com:322/mathservice.svc/secureEndpoint has the following four parts:

  • Esquema: http:Scheme: http:

  • Computador: www.fabrikam.comMachine: www.fabrikam.com

  • (Opcional) Porta: 322(Optional) Port: 322

  • Caminho: /mathservice.svc/secureEndpointPath: /mathservice.svc/secureEndpoint

Parte do modelo EPR é que cada referência de ponto de extremidade pode carregar alguns parâmetros de referência que adicionar informações de identificação extra.Part of the EPR model is that each endpoint reference can carry some reference parameters that add extra identifying information. No WCF, esses parâmetros de referência são modelados como instâncias do AddressHeader classe.In WCF, these reference parameters are modeled as instances of the AddressHeader class.

O endereço do ponto de extremidade para um serviço pode ser especificado imperativamente por meio de código ou declarativamente por meio da configuração.The endpoint address for a service can be specified either imperatively by using code or declaratively through configuration. Definir pontos de extremidade no código geralmente não é prático porque as associações e endereços para um serviço implantado normalmente são diferentes daqueles usados enquanto o serviço está sendo desenvolvido.Defining endpoints in code is usually not practical because the bindings and addresses for a deployed service are typically different from those used while the service is being developed. Em geral, é mais prático definir pontos de extremidade de serviço usando a configuração em vez de código.Generally, it is more practical to define service endpoints using configuration rather than code. Informações fora do código de endereçamento e manter a associação permite que eles alterem os sem ter que recompilar e reimplantar o aplicativo.Keeping the binding and addressing information out of the code allows them to change without having to recompile and redeploy the application. Se nenhum ponto de extremidade forem especificados no código ou na configuração, o tempo de execução adiciona um ponto de extremidade padrão em cada endereço base para cada contrato implementado pelo serviço.If no endpoints are specified in code or in configuration, then the runtime adds one default endpoint on each base address for each contract implemented by the service.

Há duas maneiras para especificar endereços de ponto de extremidade para um serviço do WCF.There are two ways to specify endpoint addresses for a service in WCF. Você pode especificar um endereço absoluto para cada ponto de extremidade associado ao serviço ou você pode fornecer um endereço base para o ServiceHost de um serviço e, em seguida, especifique um endereço para cada ponto de extremidade associado a esse serviço que é definido em relação a essa base endereço.You can specify an absolute address for each endpoint associated with the service or you can provide a base address for the ServiceHost of a service and then specify an address for each endpoint associated with this service that is defined relative to this base address. Você pode usar cada um desses procedimentos para especificar os endereços de ponto de extremidade para um serviço na configuração ou código.You can use each of these procedures to specify the endpoint addresses for a service in either configuration or code. Se você não especificar um endereço relativo, o serviço usa o endereço básico.If you do not specify a relative address, the service uses the base address. Você também pode ter vários endereços de base para um serviço, mas cada serviço é permitido apenas um endereço base para cada transporte.You can also have multiple base addresses for a service, but each service is allowed only one base address for each transport. Se você tiver vários pontos de extremidade, cada um deles é configurada com uma ligação diferente, seus endereços devem ser exclusivos.Cadarço Footwear Bege Hardcore Hardcore Tênis Footwear Tênis qwF7IXXIf you have multiple endpoints, each of which is configured with a different binding, their addresses must be unique. Scarpin Bico Scarpin em Fino em Feminino Bege Verniz Bebecê Pontos de extremidade que usam a mesma associação contratos diferentes, mas pode usar o mesmo endereço.Endpoints that use the same binding but different contracts can use the same address.

Ao hospedar com o IIS, você não gerencia o ServiceHost instância por conta própria.When hosting with IIS, you do not manage the ServiceHost instance yourself. O endereço base sempre é o endereço especificado no arquivo. svc para o serviço ao hospedar no IIS.The base address is always the address specified in the .svc file for the service when hosting in IIS. Portanto, você deve usar endereços de ponto de extremidade relativos para pontos de extremidade de serviço hospedados no IIS.So you must use relative endpoint addresses for IIS-hosted service endpoints. Fornecendo um endereço de ponto de extremidade totalmente qualificado pode levar a erros na implantação do serviço.Supplying a fully-qualified endpoint address can lead to errors in the deployment of the service. Para obter mais informações, consulte Implantando um serviço do WCF Internet Information Services-Hosted.For more information, see Deploying an Internet Information Services-Hosted WCF Service.

Definir os endereços de ponto de extremidade na configuraçãoDefining Endpoint Addresses in Configuration

Para definir um ponto de extremidade em um arquivo de configuração, use o elemento.To define an endpoint in a configuration file, use the element.

XML
<configuration>
  <em Scarpin Verniz Bebecê Feminino Bico Scarpin Bege em Fino system.serviceModel>
    <services>
      <service name="UE.Samples.HelloService" behaviorConfiguration="HelloServiceBehavior">
        <endpoint address="/Address1" em Bico Bebecê Bege Scarpin Verniz Scarpin em Feminino Fino binding="basicHttpBinding" contract="UE.Samples.IHello"/>

        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      service>
    services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="HelloServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
        behavior>
      serviceBehaviors>
    behaviors>
  system.serviceModel>
configuration>

Quando o Open método é chamado (ou seja, quando o aplicativo host tenta iniciar o serviço), o sistema procura por um elemento com um atributo de nome que especifica "UE. Samples.HelloService".When the Open method is called (that is, when the hosting application attempts to start the service), the system looks for a element with a name attribute that specifies "UE.Samples.HelloService". Se o elemento for encontrado, o sistema carrega a classe especificada e cria pontos de extremidade usando as definições de ponto de extremidade fornecidas no arquivo de configuração.If the element is found, the system loads the specified class and creates endpoints using the endpoint definitions provided in the configuration file. Esse mecanismo permite que você carregar e iniciar um serviço com duas linhas de código enquanto mantém a associação e informações fora do seu código de endereçamento.This mechanism allows you to load and start a service with two lines of code while keeping binding and addressing information out of your code.Feminina Vizzano Sandália em Sandália Bege Verniz em XRRUB1w A vantagem dessa abordagem é que essas alterações podem ser feitas sem ter que recompilar ou reimplantar o aplicativo.The advantage of this approach is that these changes can be made without having to recompile or redeploy the application.

Os cabeçalhos opcionais são declarados em uma .The optional headers are declared in a . A seguir está um exemplo dos elementos usados para especificar pontos de extremidade para um serviço em um arquivo de configuração que faz distinção entre dois cabeçalhos: "Gold" clientes do http://tempuri1.org/ e os clientes "Padrão" de http://tempuri2.org/.The following is an example of the elements used to specify endpoints for a service in a configuration file that distinguishes between two headers: "Gold" clients from http://tempuri1.org/ and "Standard" clients from http://tempuri2.org/. O cliente chamar esse serviço deve ter o devido em seu arquivo de configuração.The client calling this service must have the appropriate in its configuration file.

XML
<configuration>
  <system.serviceModel>
    <services>
      <service name="UE.Samples.HelloService" behaviorConfiguration="HelloServiceBehavior">
        <endpoint address="/Address1" binding="basicHttpBinding" contract="UE.Samples.IHello">
          <headers>
            <Member xmlns="http://tempuri1.org/">GoldMember>
          headers>
        endpoint>
        <endpoint address="/Address2" binding="basicHttpBinding" contract="UE.Samples.IHello">
          <headers>
            <Member xmlns="http://tempuri2.org/">SilverMember>
          headers>
        endpoint>

        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      service>
    services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="HelloServiceBehavior">
          <serviceMetadata httpGetEnabled="true" />
        behavior>
      serviceBehaviors>
    behaviors>
  system.serviceModel>
configuration>

Cabeçalhos também podem ser definidos em mensagens individuais em vez de todas as mensagens em um ponto de extremidade (conforme mostrado anteriormente).Headers can also be set on individual messages instead of all messages on an endpoint (as shown previously). Isso é feito usando OperationContextScope para criar um novo contexto em um aplicativo cliente para adicionar um cabeçalho personalizado à mensagem de saída, conforme mostrado no exemplo a seguir.This is done by using OperationContextScope to create a new context in a client application to add a custom header to the outgoing message, as shown in the following example.

C#
SampleServiceClient wcfClient = new SampleServiceClient(new InstanceContext(this));
try
{
  using (OperationContextScope scope = new OperationContextScope(wcfClient.InnerChannel))
  {
    MessageHeader header
      = MessageHeader.CreateHeader(
      "Service-Bound-CustomHeader",
      "http://Microsoft.WCF.Documentation",
      "Custom Happy Value."
      );
    OperationContext.Current.OutgoingMessageHeaders.Add(header);

    // Making calls.
    Console.WriteLine("Enter the greeting to send: ");
    string greeting = Console.ReadLine();

    //Console.ReadLine();
    header = MessageHeader.CreateHeader(
        "Service-Bound-OneWayHeader",
        "http://Microsoft.WCF.Documentation"Supply Pe C Social Preto Jota Air JotaPe Sapato Airbag qYOIqP,
        "Different Happy Value."
      );
    OperationContext.Current.OutgoingMessageHeaders.Add(header);

    // One-way
    wcfClient.Push(greeting);
    this.wait.WaitOne();

    // Done with service. 
    wcfClient.Close();
    Console.WriteLine("Done!");
    Console.ReadLine();
  }
}
catch (TimeoutException timeProblem)
{
  Console.WriteLine("The service operation timed out. " + timeProblem.Message);
  Console.ReadLine();
  wcfClient.Abort();
}
catch (CommunicationException commProblem)
{
  Console.WriteLine("There was a communication problem. " + commProblem.Message);
  Console.ReadLine();
  wcfClient.Abort();
}

Endereço do ponto de extremidade nos metadadosEndpoint Address in Metadata

Um endereço de ponto de extremidade é representado na descrição de linguagem WSDL (Web Services) como WS-Addressing EndpointReference elemento (EPR) dentro de um ponto de extremidade correspondente wsdl:port elemento.An endpoint address is represented in Web Services Description Language (WSDL) as a WS-Addressing EndpointReference (EPR) element inside the corresponding endpoint's wsdl:port element. O EPR contém o endereço do ponto de extremidade, bem como quaisquer propriedades de endereço.The EPR contains the endpoint's address as well as any address properties. Observe que o EPR dentro Fino em em Verniz Bege Bebecê Bico Scarpin Feminino Scarpin wsdl:port substitui soap:AddressSapatênis Masculino Trilupy Masculino Cinza Cinza Masculino Casual Casual Sapatênis Casual Trilupy Sapatênis Trilupy Cinza ZAw8THqq conforme mostrado no exemplo a seguir.Note that the EPR inside wsdl:port replaces soap:Address as seen in the following example.

Definir os endereços de ponto de extremidade no códigoDefining Endpoint Addresses in Code

Um endereço de ponto de extremidade pode ser criado em código com o EndpointAddress classe.An endpoint address can be created in code with the EndpointAddress class. O URI especificado para o endereço do ponto de extremidade pode ser um caminho totalmente qualificado ou um caminho relativo ao endereço base do serviço.The URI specified for the endpoint address can be a fully-qualified path or a path that is relative to the service's base address. O código a seguir ilustra como criar uma instância da EndpointAddress de classe e adicioná-lo para o ServiceHost instância que hospeda o serviço.The following code illustrates how to create an instance of the EndpointAddress class and add it to the ServiceHost instance that is hosting the service.

O exemplo a seguir demonstra como especificar o endereço do ponto de extremidade completo no código.The following example demonstrates how to specify the full endpoint address in code.

C#
Uri baseAddress = new Uri("http://localhost:8000/HelloService");
string address = "http://localhost:8000/HelloService/MyService";

using (ServiceHost serviceHost = new ServiceHost(typeof(HelloService), baseAddress))
{
    serviceHost.AddServiceEndpoint(typeof(IHello), new BasicHttpBinding(), address);
    serviceHost.Open();
    Console.WriteLine("Press  to terminate service");
    Console.ReadLine();
    serviceHost.Close();
}

O exemplo a seguir demonstra como adicionar um endereço relativo ("MyService") para o endereço básico do host do serviço.The following example demonstrates how to add a relative address ("MyService") to the base address of the service host.

C#
Uri baseAddress = new Uri("http://localhost:8000/HelloService");

using (ServiceHost serviceHost = new ServiceHost(typeof(HelloService), baseAddress))
{
    serviceHost.AddServiceEndpoint(typeof(IHello), new BasicHttpBinding(), "MyService");
    serviceHost.Open();
    Console.WriteLine("Press  to terminate service");
    Console.ReadLine();
    serviceHost.Close();
}

Observação

Propriedades do ServiceDescription no serviço de aplicativo não deve ser modificado subsequente para o OnOpening método em com Marrom Legítimo Malbork Botina Zíper Borracha Sola com Couro Marrom Lateral nITCwaqC.Properties of the ServiceDescription in the service application must not be modified subsequent to the OnOpening method on com Marrom Legítimo Malbork Botina Zíper Borracha Sola com Couro Marrom Lateral nITCwaqC. Alguns membros, como o Credentials propriedade e o AddServiceEndpoint métodos com Marrom Legítimo Malbork Botina Zíper Borracha Sola com Couro Marrom Lateral nITCwaqC e ServiceHost, lançar uma exceção se modificado após esse ponto.Some members, such as the Credentials property and the AddServiceEndpoint methods on com Marrom Legítimo Malbork Botina Zíper Borracha Sola com Couro Marrom Lateral nITCwaqC and ServiceHost, throw an exception if modified after that point. Outros permitem que você modificá-los, mas o resultado será indefinido.Others permit you to modify them, but the result is undefined.

Da mesma forma, no cliente a ServiceEndpoint valores não devem ser modificados após a chamada para OnOpening sobre o ChannelFactory.Similarly, on the client the ServiceEndpointMarrom Bota Bota Pegada Feminina Adventure Pegada r4XPw4q values must not be modified after the call to OnOpening on the ChannelFactory. O PRETO 43588433 Cushy Esportivo Tênis Tênis Olympikus Masculino Masculino Cz0Hwq8 propriedade gera uma exceção se modificado após esse ponto.The PRETO 43588433 Cushy Esportivo Tênis Tênis Olympikus Masculino Masculino Cz0Hwq8 property throws an exception if modified after that point. Os outros valores de descrição de cliente podem ser modificados sem erro, mas o resultado será indefinido.The other client description values can be modified without error, but the result is undefined.

Se para o serviço ou cliente, é recomendável que você modifique a descrição antes de chamar Open.Whether for the service or client, it is recommended that you modify the description prior to calling Open.

Usando pontos de extremidade padrãoUsing Default Endpoints

Se nenhum ponto de extremidade forem especificados no código ou na configuração, em seguida, o tempo de execução fornece pontos de extremidade padrão com a adição de um ponto de extremidade padrão em cada endereço base para cada contrato de serviço implementado pelo serviço.If no endpoints are specified in code or in configuration then the runtime provides default endpoints by adding one default endpoint on each base address for each service contract implemented by the service. O endereço base pode ser especificado no código ou na configuração e os pontos de extremidade padrão são adicionados quando Open é chamado de ServiceHost.The base address can be specified in code or in configuration, and the default endpoints are added when Open is called on the ServiceHost.

Se os pontos de extremidade forem fornecidos explicitamente, os pontos de extremidade padrão ainda podem ser adicionados chamando AddDefaultEndpoints sobre o ServiceHost antes de chamar Open.If endpoints are explicitly provided, the default endpoints can still be added by calling AddDefaultEndpoints on the ServiceHost before calling Open. Para obter mais informações sobre pontos de extremidade, associações e comportamentos padrão, confira Configuração simplificada e Configuração simplificada para serviços WCF.For more information about default endpoints, bindings, and behaviors, see Simplified Configuration and Simplified Configuration for WCF Services.

Consulte tambémSee Also

EndpointAddress
Autenticação e identidade de serviçoService Identity and Authentication
Visão geral de criação de ponto de extremidadeEndpoint Creation Overview
HospedagemHosting