位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# 地址、端点和绑定

提问人:刘团圆发布时间:2020-12-11

用于服务的地址类型取决于所使用的协议。前面介绍的3个协议(不包括MSMQ)都需要格式化的服务地址:

    • HTTP: HTTP协议的地址是URL,其格式很常见:卿M<server>:<poti>/<servic冷。对于TLS连接, 也可以使用https://<server>:<pori>f<service>。如果在US中驻留服务,<servictf>就是扩展名为.svc的文件。IIS地址可能包含比这个示例更多的子目录,即.svc文件之前有更多使用/字符分隔的部分。

    • TCP: TCP 的地址采用 net.tcp://<server>:<port>/<service>形式。

    • UDP: UDP 的地址采用 soap.udp://<server>:<port>/<service>。对于多播通信,需要为<setver>使用—些特定值。

    • 命名管道:命名管道连接的地址与上述类似,但没有端口号。其形式是net.pipe://<server>/<service>。服务的地址是一个基地址,它可用于为表示操作的端点创建地址。例如,在net.tcp://<sm;er>: <port>/<service>/operationl上有一个操作。

  例如,假定创建一个WCF服务,它有一个操作,绑定了前面介绍的3个协议,就可以使用下面的基地址:

http://www.mydomain.com/services/ainazingservices/mygreatservice.svc 

net.tcp://myhugeserver:8080/mygreatservice 

net.pipe://localhost/mygreatservice

接着就可以给操作使用下面的地址:

http://www.mydomain.com/services/amazingservices/mygreatservice,svc/greatop 

net.tcp://myhugeserver:8080/mygreatservice/greatop 

net.pipe://localhost/mygreatservice/greatop

    从.NET4开始,可给操作使用默认端点,而不必明确地配置它们。这简化了配置,如果需要使用标准端点地址(如上例所示),这表现得尤其明显。

    如前所述,绑定不仅指定了操作使用的传输协议,还可以指定在传输协议上通信的安全要求、端点的事务处理功能和消息编码等。

    绑定提供了极大灵活性,所以.NETFramework提供了一些可用的预定义绑定。还可将这些绑定用作起点,修改它们,得到需要的绑定类型。预定义绑定有一些必须遵循的原则。每种绑定类型都用System.ServiceModel名称空间中的一个类表示。下表列出了最常用的绑定及其基本信息。

绑 定

BasicHttpBinding

最简单的HTTP绑定,Web服务使用的默认绑定,它的安全功能有限,不支持事务处理

WSHttpBinding

HTTP绑定的一种较高级形式,可以使用WSE中引入的所有额外功能

WSDualHttpBinding

扩展了WSHttpBinding功能,包含双向通信功能。在双向通信中,服务器可以启动与客户端的 通信,还可以进行一般的消息交换

绑 定

WSFederationHttp

Binding

扩展了 WSHttpBinding功能,包含联合功能。联合功能允许第三方实现单点登录(single sign-on) 和其他专用安全措施。这是一个高级主题,本章不予讨论

NetTcpBinding

用于TCP通信,允许配罝安全性、事务处理等

NetNamedPipeBinding

用于命名管道的通信,允许配盟安全性、事务处理等

NetMsmqBinding

这些绑定用于MSMQ,本章不予讨论

NetPeerT cpBinding

用于对等绑定,本竞不予讨论

WebHttpBinding

用于使用HTTP请求(而不是SOAP消息)的Web服务

UdpBinding

允许绑定到UDP协议

    这个表中的许多绑定类拥有可用于其他配置的类似属性。例如,它们有可用于配置超时值的属性。

    端点的默认绑定因所用协议而异。这些默认绑定如表所示。

协 议

默认绑定

HTTP

BasicHttpBinding

TCP

NetTcpBinding

UDP

UdpBinding

命名管道

NetNamedPipeBinding


继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部