官术网_书友最值得收藏!

Bindings

When a client and service communicate, there are several aspects to the communication.

  • Synchronous/asynchronous: Messages can be used in a request/response pattern or they can be used in asynchronous communication depending on whether the client waits for the response or not.
  • Transport protocol: The protocol used for transporting the messages can vary depending on the needs. Protocols such as HTTP, Transmission Control Protocol (TCP), Microsoft Message Queuing (MSMQ), and Inter-process communication (IPC) can be used.
  • Encoding: You have a choice on how to encode the messages. You can choose to use plain text if you want maximum interoperability. Alternatively, you can use binary encoding to speed up performance, or using the Message Transport Optimization Mechanism (MTOM) to handle larger payloads.
  • Security: There are also some options that can be used to handle security and authentication. Security can be implemented at the transport level, at the message level, or can be skipped altogether.

As you can imagine, keeping track of all of the options can be a little difficult, and making the right choice on how to configure the different settings is not easy. To solve this, WCF introduces bindings. A binding is merely a grouping of choices that deal with each aspect of the communication that we just discussed.

WCF supports several bindings out of the box. If these do not suffice, there is always the alternative of creating a custom binding of your own. The following are the most commonly used bindings:

  • NetTcpBinding: This uses the TCP protocol and is mainly used for cross-machine communication over an intranet. It is WCF-optimized and thus requires both the client and the server to use WCF.
  • BasicHttpBinding: This binding is used to expose a service as an ASMX web service so that older clients that comply with WS-I Basic Profile 1.1 are supported.
  • WsHttpBinding: This binding is used for communication over the Internet. It uses the HTTP and HTTPS protocols and complies with WS-* standards. So, any party that supports the WS-* standards is able to communicate with the service.
  • NetMsmqBinding: This type of binding will be used when support is needed for MSMQ queues. The NetMsmqBinding binding is actually a compact binding that does not provide all of the possible options to configure MSMQ. There are other bindings that provide more options.

Now that we have elaborated on some of the out-of-the-box bindings, you are probably asking yourself, how can I make sure I'm using the appropriate binding for my scenario? Well, the following flowchart may help you with this choice:

Bindings
主站蜘蛛池模板: 永年县| 淮南市| 郎溪县| 蒙山县| 溆浦县| 黎川县| 胶南市| 沂水县| 永泰县| 神池县| 湘潭县| 霍林郭勒市| 当涂县| 多伦县| 三穗县| 界首市| 瑞昌市| 仁化县| 鄂伦春自治旗| 扬州市| 社旗县| 尼勒克县| 河曲县| 永泰县| 伊通| 托克托县| 山阴县| 疏勒县| 松江区| 彝良县| 隆林| 饶河县| 海城市| 英吉沙县| 富宁县| 乌鲁木齐县| 吉隆县| 潞城市| 宿州市| 越西县| 雷山县|