为什么我应该在WCF中使用端点

时间:2013-06-03 04:07:36

标签: asp.net wcf web-services wcf-endpoint

我刚刚在WCF中创建了我的第一个示例。到目前为止,我可以在本地计算机上创建服务并由客户端使用。当我第一次阅读关于WCF时,我看到了一些关于END POINTS的解释,我无法理解为什么它真的被用于。下面是我的代码和一些请告诉我为什么我应该使用端点以及如何在我的示例应用程序中添加端点。

namespace MvcApplicationrazor.Services
{

    [ServiceContract]
    public interface IMyService
    {
        [OperationContract]
        string MyOperation1(string myValue);
        [OperationContract]
        string MyOperation2(DataContract1 dataContractValue);
        [OperationContract]
        string HelloWorld(string str);
    }

    [DataContract]
    public class DataContract1
    {
        string firstName;
        string lastName;

        [DataMember]
        public string FirstName
        {
            get { return firstName; }
            set { firstName = value; }
        }
        [DataMember]
        public string LastName
        {
            get { return lastName; }
            set { lastName = value; }
        }
    }
}


namespace MvcApplicationrazor.Services
{

    public class MyService : IMyService
    {
        public string MyOperation1(string myValue)
        {
            return "Hello: " + myValue;
        }
        public string MyOperation2(DataContract1 dataContractValue)
        {
            return "Hello: " + dataContractValue.FirstName;
        }
        public string HelloWorld(string str)
        {
            return "Helloworld from " + str;
        }


    }
}

客户端:

 FirstServiceReference.MyServiceClient cc = new FirstServiceReference.MyServiceClient();
 string  a = cc.MyOperation1("chamara");

1 个答案:

答案 0 :(得分:4)

与Windows Communication Foundation(WCF)服务的所有通信都通过服务的端点进行。端点为客户端提供对WCF服务提供的功能的访问。

每个端点由四个属性组成:

  • 指示可以找到端点的位置的地址。
  • 指定客户端如何与端点通信的绑定。
  • 确定可用操作的合同。
  • 一组指定端点的本地实现细节的行为。

端点的结构

每个端点包含以下内容:

  • 地址:地址唯一标识端点,并告知潜在的消费者服务所在的位置。它由EndpointAddress类在WCF对象模型中表示。 EndpointAddress类包含:

  • Uri属性,代表服务的地址。

  • Identity属性,表示服务的安全标识和可选邮件标头的集合。可选的消息头用于提供额外的和更详细的寻址信息,以识别端点或与端点交互。

    有关详细信息,请参阅指定端点地址。

  • 绑定:绑定指定如何与端点通信。这包括:

    • 要使用的传输协议(例如,TCP或HTTP)。

    • 用于消息的编码(例如,文本或二进制)。

    • 必要的安全要求(例如,SSL或SOAP消息安全性)。

    有关详细信息,请参阅Windows Communication Foundation绑定概述。通过抽象基类Binding在WCF对象模型中表示绑定。对于大多数情况,用户可以使用系统提供的绑定之一。有关更多信息,请参阅系统提供的绑定。

  • 合同:合同概述了端点向客户端公开的功能。合同规定:

    • 客户可以调用哪些操作。

    • 消息的形式。

    • 调用操作所需的输入参数或数据的类型。
    • 客户可以期待什么类型的处理或响应消息。
  • 行为:您可以使用端点行为来自定义服务端点的本地行为。端点行为通过参与构建WCF运行时的过程来实现此目的。端点行为的一个示例是ListenUri属性,它允许您指定与SOAP或Web服务描述语言(WSDL)地址不同的侦听地址。有关更多信息,请参阅ClientViaBehavior。