What is an "endpoint" in WCF?

C#WcfEndpoints

C# Problem Overview


I was under the impression that an endpoint was defined in a config file as the list of possible clients but that makes no sense (in the sense that I assumed it said what computers could connet to the service) now I'm gathering that it's more of a definition, so would someone please explain what an end point is to me? I understand the concept of definining the contract interface and then implementing the contract but I get lost somewhere between there and actually having something useable.

What is an address in this context? the host address?

A binding is the communications method/protocol to use correct?

the contract is the "object being shared" essentially (yes i know that's so technically incorrect but work with me here)

C# Solutions


Solution 1 - C#

An endpoint is what a service exposes, and in WCF terms, is made up of three things:

  • Address
  • Binding
  • Contract

Address is the URL by which the endpoint can be reached.

Binding dictates transformations that are applied as well as the shape (to some degree) of the messages sent to the implementation of the Contract at the Address.

Contract dictates what operations are being exposed at the address. It's exactly what it says it is, it's a contract to indicate what calls are permissible.

Most of the time, people remember it as A B C.

Some things to note:

The binding is typically going to be a combination of channels with behaviors applied; channels being elements on the channel stack which modify the message and perform actions before they get to the service implementation.

While commonly represented by an interface in .NET, it is not a requirement that a Contract be represented in this manner. Some design-first advocates will define the schemas to the messages that are going to be sent for the request and the response first, which is what WCF transforms the .NET Contract interface into.

Solution 2 - C#

I'm going to cite Juval Lowy's Programming WCF Services here:

> Every service is associated with an address that defines where the > service is, a binding that defines how to communicate with the > service, and a contract that defines what the service does. This > triumvirate governing the service is easy to remember as the ABC of > the service. > > WCF formalizes this relationship in the form of an endpoint. The > endpoint is the fusion of the address, contract, and binding. > > Every endpoint must have all three elements, and the host exposes the > endpoint.

Solution 3 - C#

Endpoints in WCF
WCF Service is a program that exposes a collection of Endpoints. Each Endpoint is a portal for communicating with the world. End point consists of three components.

  1. Address :
       Defines where a service is located
       ex - http://www.test.com:8001/MyService
  2. Bindings :
       A binding that specifies how a client can communicate with the endpoint.
       ex - BasicHttpBinding,WSHttpBinding,WSDualHttpBinding etc
  3. Contracts :
       A contract that identifies the operations available

Endpoints will be mentioned in the web.config file on the created service.

http://localhost:51482/Service1.svc" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1" contract="BugzillaAPI.IService1" name="BasicHttpBinding_IService1" />

Solution 4 - C#

A Service Endpoint has an Address, a Binding, and a Contract. The Endpoint's Address is a network address where the Endpoint resides. The EndpointAddress class represents a WCF Endpoint Address. The Endpoint's Binding specifies how the Endpoint communicates with the world including things like transport protocol (e.g., TCP, HTTP), encoding (e.g., text, binary), and security requirements (e.g., SSL, SOAP message security). The Binding class represents a WCF Binding. The Endpoint's Contract specifies what the Endpoint communicates and is essentially a collection of messages organized in operations that have basic Message Exchange Patterns (MEPs) such as one-way, duplex, and request/reply. The ContractDescription class represents a WCF Contract.

Solution 5 - C#

See here: A service endpoint specifies an address, a binding, and a contract to use for communication.

Solution 6 - C#

A Service Endpoint has an Address, a Binding, and a Contract. The Endpoint's Address is a network address where the Endpoint resides. The EndpointAddress class represents a WCF Endpoint Address. The Endpoint's Binding specifies how the Endpoint communicates with the world including things like transport protocol (e.g., TCP, HTTP), encoding (e.g., text, binary), and security requirements (e.g., SSL, SOAP message security). The Binding class represents a WCF Binding. The Endpoint's Contract specifies what the Endpoint communicates and is essentially a collection of messages organized in operations that have basic Message Exchange Patterns (MEPs) such as one-way, duplex, and request/reply. The ContractDescription class represents a WCF Contract.

Solution 7 - C#

A web service endpoint can hide some or all of these. And based on request can decide internally the processing of Request.

SRJTester tool (available on Github) is nice to specify Endpoint, Actions, protocols etc. while making a service request.

Solution 8 - C#

Endpoint is used to configure the communication channel between the client application and the WCF service

End point sample

<endpoint address="http://localhost:3901/Service1.svc"
           binding="basicHttpBinding"  
          contract="ServiceReference.IService1" bindingConfiguration="BasicHttpBinding_IService1"  
              name="BasicHttpBinding_IService1" /> 

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionFirosoView Question on Stackoverflow
Solution 1 - C#casperOneView Answer on Stackoverflow
Solution 2 - C#draconisView Answer on Stackoverflow
Solution 3 - C#DotNet TeamView Answer on Stackoverflow
Solution 4 - C#user2336872View Answer on Stackoverflow
Solution 5 - C#Otávio DécioView Answer on Stackoverflow
Solution 6 - C#sddView Answer on Stackoverflow
Solution 7 - C#SRJTesterView Answer on Stackoverflow
Solution 8 - C#Haris N IView Answer on Stackoverflow