msmqIntegrationBinding 绑定用来在一个WCF应用程序和一个直接利用MSMQ的应用程序间通信-比如,使用System.Messaging.这允许开发人员利用WCF同时也使用他们已有的MSMQ应用程序。msmqIntegrationBinding绑定允许MSMQ消息映射到WCF消息。这通过在MsmqMessage类中对MSMQ消息包装来实现的。类位于System.ServiceModel.MsmqIntegration命名空间里。实例可以使用单向契约被发送或接收。
下面的代码显示了msmqIntegrationBinding绑定的地址格式:
msmq.formaname:{MSMQ format name}
MSMQ地址格式不需要端口来确定。然后,MSMQ需要打开特定端口,比如1801.表4.12显示了msmqIntegrationBinding绑定的可以配置的属性。
表4.12 msmqIntegrationBinding绑定属性
列表4.30 显示了使用msmqIntegrationBinding绑定暴露一个服务的最小配置
列表4.30 msmqIntegrationBinding 宿主配置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="EssentialWCF.StockQuoteRequestService">
<endpoint address="msmq.formatname:DIRECT=OS:.\private$\stockquoteresponse"
binding="msmqIntegrationBinding"
contract="EssentialWCF.IStockQuoteRequest" />
</service>
</services>
</system.serviceModel></configuration>
调用由msmqIntegrationBinding绑定生成的服务的最小配置在列表4.31中显示
列表4.31 msmqIntegrationBinding 客户端配置
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.serviceModel>
<services>
<service name="EssentialWCF.HelloWorld">
<endpoint address="msmq.formatname:DIRECT=OS:.\private$\stockquoteresponse" binding="msmqIntegrationBinding"
contract="EssentialWCF.IStockQuoteRequestService" />
</service>
</services>
</system.serviceModel></configuration>

