首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在代码中使用wsDualHttpBinding设置WCF客户端?

在代码中使用 wsDualHttpBinding 设置 WCF 客户端的步骤如下:

  1. 首先,在服务端的配置文件中定义一个绑定,使用 wsDualHttpBinding。例如:
代码语言:xml<system.serviceModel>
复制
  <bindings>
    <wsDualHttpBinding>
     <binding name="MyDualBinding">
        <reliableSession ordered="true" />
      </binding>
    </wsDualHttpBinding>
  </bindings>
 <services>
   <service name="MyService">
     <endpoint address="http://localhost:8000/MyService"
                binding="wsDualHttpBinding"
                bindingConfiguration="MyDualBinding"
                contract="IMyService" />
    </service>
  </services>
</system.serviceModel>
  1. 在客户端的配置文件中定义一个绑定,使用 wsDualHttpBinding。例如:
代码语言:xml<system.serviceModel>
复制
  <bindings>
    <wsDualHttpBinding>
     <binding name="MyDualBinding">
        <reliableSession ordered="true" />
      </binding>
    </wsDualHttpBinding>
  </bindings>
 <client>
   <endpoint address="http://localhost:8000/MyService"
              binding="wsDualHttpBinding"
              bindingConfiguration="MyDualBinding"
              contract="IMyService" />
  </client>
</system.serviceModel>
  1. 在客户端代码中创建一个 WCF 客户端,并使用上面定义的绑定。例如:
代码语言:csharp
复制
using System.ServiceModel;

class Program
{
    static void Main(string[] args)
    {
        WSDualHttpBinding binding = new WSDualHttpBinding();
        binding.ReliableSession.Ordered = true;

        EndpointAddress endpoint = new EndpointAddress("http://localhost:8000/MyService");
        MyServiceClient client = new MyServiceClient(binding, endpoint);

        // 调用服务方法
        client.MyServiceMethod();

        // 关闭客户端
        client.Close();
    }
}

在上面的代码中,我们首先创建了一个 wsDualHttpBinding 实例,并设置了 reliableSession.ordered 属性为 true。然后,我们创建了一个 EndpointAddress 实例,指定服务端的地址。最后,我们使用这个绑定和地址创建了一个 MyServiceClient 实例,并调用服务方法。

需要注意的是,由于 wsDualHttpBinding 使用双向通信,因此需要在服务端和客户端都进行配置。此外,由于 wsDualHttpBinding 使用了可靠会话,因此需要在绑定中启用可靠会话。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Mono 3.0.2 基于双工通信的WCF应用 Demo

结果显示是通过回调的方式实现的,所以需要借助于客户端提供的回调对象(该对象在客户端调用CalculatorService的时候指定,在介绍客户端代码的实现的时候会讲到)。...在服务端,则可以通过OperationContex获取在客户端设置的SOAP报头和HTTP报头。...预定义绑定类型WSDualHttpBinding和NetTcpBinding均提供了对双工通信的支持,但是两者在对双工通信的实现机制上却有本质的区别。...具体可以参看 WCF置于Mono下遇到的一些问题 在MONO下实现WCF所遇到的问题 步骤四:实现回调契约 在客户端程序为回调契约提供实现,在下面的代码CalculateCallback实现了回调契约...代码下载 相关文章: 我的WCF之旅(3):在WCF实现双工通信 Mono WCF Advent Day 11: NetTcpBinding Using WCF Callback Services Throttling

76260

WCF的Binding模型之六(完结篇):从绑定元素认识系统预定义绑定

为此我们我们写了一个简单的方法,用于列出一个具体的绑定对象所有的绑定元素,在介绍一个个具体的系统绑定,我会使用该方法: 1: static void ListAllBindingElements...System.ServiceModel.Channels.HttpsTransportBindingElement 如果我们设置成基于消息的安全模式,并将客户端的凭证类型(Client Credential...在下面我们对代码稍加改动,通过构造函数将WsHttpBinding设置为基于传输的安全模式: 1: class Program 2: { 3: static void Main...WCF的绑定模型: [WCF的Binding模型]之一: Binding模型简介 [WCF的Binding模型]之二: 信道与信道栈(Channel and Channel Stack) [WCF...的Binding模型]之三:信道监听器(Channel Listener) [WCF的Binding模型]之四:信道工厂(Channel Factory) [WCF的Binding模型]之五:绑定元素

914100
  • 使命必达: 深入剖析WCF的可靠会话(下)

    上面一部分我们站在信道层的角度剖析了WCF为了实现可靠会话在信道层进行的一系列消息交换,或者说客户端和服务端的RS信道为了实现可靠消息传输所进行一轮又一轮的握手。...而WCF通过WSDualHttpBinding实现的双工通信机制和NetTcpBinding支持的双工通信具有本质的区别。...如果终结点服务契约的所有操作均是单向的(通过OperationContractAttribute特性的IsOneway属性设置),对于可靠会话来说仅仅存在一个从客户端到服务端的RM序列。...如果终结点服务契约的所有操作具有一个以上的非单向操作,WCF可靠会话不仅仅需要保障消息从客户端到服务端的可靠性,也需要对服务端到客户端的消息传输提供保障,所以WCF可靠会话需要建立两个方向相反的RM...具体来说,客户端RS信道将SequenceAcknowledgement报头放到请求消息,实现对接收到的回复消息的确认;服务端RS信道则将SequenceAcknowledgement报头放到回复消息

    574100

    我的WCF之旅(3):在WCF实现双工通信

    借助OperationContext,我们可以在服务端或者客户端获取或设置一些上下文,比如在客户端可以通过它为出栈消息(outgoing message)添加SOAP报头,以及HTTP报头(比如Cookie...,在下面的代码CalculateCallback实现了回调契约ICallback,在DisplayResult方法对运算结果进行输出。...在上面给出的客户端代码,在调用了Add方法后添加了这样的语句“Console.Read();”,这是为了阻止调用proxy的Dispose方法,因为该方法将会试图关闭底层的TCP连接。...WCF通过加锁机制保证服务对象的独占性使用,也就是说在服务执行开始会对服务对象加锁,该锁在服务操作结束之后释放。 回到我们的例子,在Add操作执行过程,服务端回调客户端操作进行运算结果的显示工作。...WSDualHttpBinding通过创建两个单项信道的方式提供双工通信的实现。 对于一个双工通信的WCF服务来说,回调过程本质上也是一种服务调用,是对寄宿于客户端的回调服务的调用。

    1.1K100

    使命必达: 深入剖析WCF的可靠会话(上)

    WCF的可靠会话是建立在客户端和服务端之间,确保消息可靠传输的上下文,相当于WS-RM序列的概念。...WCF使用指数补偿算法根据计算的平均往返时间来确定何时重新传输。初始重试时间是根据测量的创建会话往返时间来计算的。重新传输算法是每进行一次尝试,延迟时间就会增加一倍。...下面的代码演示了WSHttpBindingBase(WSHttpBinding和WS2007HttpBinding的基类)和WSDualHttpBinding的ReliableSession属性的定义。...我们可以通过编程的方式开启或者关闭终结点使用的除WSDualHttpBinding之外的其他系统绑定(限于支持可靠会话系统绑定)的可靠会话开关,以及设置InactivityTimeout和Ordered...下面的配置,我们在客户端对终结点使用的WS2007HttpBinding的可靠会话进行了设置

    72360

    菜菜从零学习WCF二(设计和实现服务协定)

    --缺点:如果执行操作需要很长的时间,则会降低客户端性能和响应力     --优点:响应消息可返回SOAP错误,这表名可能在通信或处理中发生了一些与服务有关的错误状况   单向模式 如果WCF服务应用程序的客户端不必等待操作完成...,无论使用单向消息发送还是请求/答复消息发送方式,服务和客户端均能均能够独立的向对方发送消息。...配置预定义绑定类型   在WCF预定义绑定类型WSDualHttpBinding和NetTcpBinding均提供了对双工通信的支持,但是两者在对双工通信的实现机制上却有本质的区别。...WSDualHttpBinding实际上创建了两个通道,一个用于客户端向服务端的通信,而另一个则用于服务端到客户端的通信,从而间接地提供了双工通信的实现。...将示例代码上传,可以点击下载

    87520

    2019-1-27-wcf入门(6)

    本文demo已上传至github:xinyuehtx/WCFdemo 这个博客会介绍如何设置服务的会话 ---- 会话(Session) 还记得2019-1-25-wcf入门(5) - huangtengxiao...在此期间所有的消息都是属于会话的一部分 使用会话 ? 如图所示,使用会话时需要在服务协定设置SeesionMode。...对于Required指该服务必须使用会话 此外,还需要选取两个操作,通过IsInitialting和IsTerminating设置会话的启动和终止 ?...这个是设置整个会话的生命周期内,只使用服务类的单个实例。实例化的具体内容会在后续博客中介绍 ? 我们看下客户端的调用,依次调用会话启动方法,其余方法,会话终止方法。 ?...我们可以看到所有的回复都带上了客户端在会话启动方法传入的name 会话的问题 在WCF客户端是通过一个通道创建了服务的透明代理。而当会话终止时,相应的通信通道也会关闭。

    49720

    使命必达: 深入剖析WCF的可靠会话

    这也是早年微软推广WCF技术频繁使用的案例:图片传输。在客户端,我们选择一张图片,并对它进行切片,最后通过调用WCF服务将每一个切片依次传输到服务端。...在这里,我们充分利用了WCF的可靠会话提供了可靠而有序的消息交付… 阅读全文 【概念篇】 WCF的可靠会话这涉及到WS中一个重要的概念——可靠消息传输(RM:Reliable Messaging)。...我们可以将一个通过WCF构建的分布式应用划分为两个部分,即客户端应用和服务端应用,它们之间的交互方式即采用某种MEP的消息交换。...《上篇》对实现可靠会话的绑定元素已经如何使用系统绑定实现可靠会话进行了介绍,下篇将和你探讨WCF可靠会话编程模型余下两个主题:自定义绑定和对消息传递的强制约束… 阅读全文 【原理篇-上】 可靠会话的编程仅仅围绕着一个对象...而WCF通过WSDualHttpBinding实现的双工通信机制和NetTcpBinding支持的双工通信具有本质的区别。

    58160

    何在 Linux 安装、设置使用 SNMP?

    在Linux系统,我们可以安装、设置使用SNMP来监控和管理服务器和网络设备。本文将详细介绍在Linux安装、设置使用SNMP的步骤和方法。...图片步骤一:安装SNMP在Linux系统,我们首先需要安装SNMP软件包。具体的安装命令可能因您使用的Linux发行版而有所不同。...在大多数Linux发行版,SNMP代理是作为一个系统服务运行的。您可以使用以下命令启动和管理SNMP代理的服务。...SNMP完成了基本的安装、设置和测试后,您可以根据需要进一步配置和使用SNMP。...通过安装、设置使用SNMP,您可以轻松地获取设备的状态信息、性能指标和错误报告,从而实现及时的故障排除和网络优化。

    2.7K10

    WCF技术剖析之三十一: WCF事务编程

    一、绑定对事务流转的支持 《WCF技术剖析(卷1)》的第3章对绑定的本质进行了深层次的剖析,阅读过本章的读者应该知道:绑定是一系列绑定元素(BindingElement)的有序组合,相应的绑定元素对消息进行相应的处理以实现特定的目标...对象事务流转来说,客户端需要将当前事务进行序列化并嵌入到消息;服务端则需要从接收到的消息中提取事务相关信息,反序列化以重建事务。...创建支持事务流转的自定义绑定的时候,你需要做的仅仅是将TransactionFlowBindingElement添加到绑定元素集合,并设置TransactionFlow和TransactionProtocol...对于WCF客户端框架来说,对于通过TransactionFlowAttribute特性设置的三个选项来说,NotAllowed和Allowed对绑定的事务流转能力没有任何要求,而Madantory则强制要求终结点的绑定能够实现事务的流转...下面的代码和配置,通过TransactionFlowAttribute将唯一的Transfer操作的事务流转选项设置为Mandatory,并选用不支持事务流转的BasicHttpBinding。

    70560

    WCF系统内置绑定列表与系统绑定所支持的功能

    此绑定使用HTTP作为传输协议,并使用文本/XML作为默认的消息编码 HTTP/HTTPS Text,MTOM WSHttpBinding 一个安全且可互操作的绑定,适合于非双工服务约定...ws2007HttpBinding> 一个安全且可互操作的绑定,可为Security,ReliableSession的正确版本和TransactionFlow绑定元素提供支持 HTTP/HTTPS Text,MTOM WSDualHttpBinding... 一个安全且可互操作的绑定,适用于双工服务协定或通过SOAP媒介进行的通信 HTTP Text,MTOM WSFederationHttpBinding 一个安全且可互操作的绑定,支持WS联合协议并使联合的组织可以高效地对用户进行身份验证和授权 HTTP/HTTPS Text, MTOM WS2007FederationHttpBinding <ws2007FederationHttpBinding...WS*事务支持 持久可靠消息传送 可靠会话 性能 请求/响应 单向 双工 basicHttpBing √ √ √ 良好 √ √ wsHttpBinding √ √ √ √ √ 良好 √ √ wsDualHttpBinding

    63910

    何在 Linux 安装、设置使用 SNMP?

    在Linux系统,我们可以安装、设置使用SNMP来监控和管理服务器和网络设备。本文将详细介绍在Linux安装、设置使用SNMP的步骤和方法。...步骤一:安装SNMP 在Linux系统,我们首先需要安装SNMP软件包。具体的安装命令可能因您使用的Linux发行版而有所不同。...在大多数Linux发行版,SNMP代理是作为一个系统服务运行的。您可以使用以下命令启动和管理SNMP代理的服务。...SNMP 完成了基本的安装、设置和测试后,您可以根据需要进一步配置和使用SNMP。...通过安装、设置使用SNMP,您可以轻松地获取设备的状态信息、性能指标和错误报告,从而实现及时的故障排除和网络优化。

    2.8K30

    C# WCF服务

    WCF是.Net框架的技术,用来创建面向服务的应用程序,交换不同通信方案里的消息,以及执行服务操作生成的工作流。WCF应用程序由三部分组成 - WCF服务,WCF服务主机和WCF服务客户端。...由于WCF完全是由托管代码编写,因此开发WCF的应用程序与开发其它的.Net应用程序没有太大的区别,我们仍然可以像创建面向对象的应用程序那样,利用WCF来创建面向服务的应用程序。...WCF充分的考虑到了与旧有系统的兼容性。安装WCF并不会影响原有的技术ASMX和.Net Remoting。...异常处理:在WCF,未处理的异常都是在一个更好的方式通过使用FaultContract处理,并没有得到Web服务SOAP(简单对象访问协议)故障返回给客户端等。...绑定:WCF支持多种类型, basicHttpBinding,WSDualHttpBinding,WSHttpBinding等绑定,而Web服务仅支持SOAP或XML。

    91220

    服务凭证(Service Credential)与服务身份(Service Identity)

    因此,只有在基于域(Domain)的网络环境,基于Windows认证的服务认证才是可行的。而在工作组(Work Group)环境,我们推荐使用基于证书的服务认证。...这也是为何在前面演示的实例,当NetTcpBinding采用Transport安全模式,客户端凭证被设置成None时,为何需要为服务指定一个X.509证书作为服务凭证的原因。...关于具体对服务证书认证模式的设置在前面的实例演示(《TLS/SSL在WCF的应用[SSL over TCP]》和《TLS/SSL在WCF的应用[HTTPS]》)已经有过介绍了。...WCF的SPN和UPN的格式如下。...SvcUtil.exe导入元数据生成客户端代码和配置的时候,WSDL的服务身份标识会自动被写入配置

    1.1K80

    消息的保护等级

    按照级别的由低到高,WCF支持如下三种不同的安全等级。在WCF的应用编程接口中,消息保护级别通过如下定义的ProtectionLevel枚举表示。...而对于出现异常时返回给客户端的错误消息(Fault Message),我们依然需要加以保护。...从如下代码可以看出,这些特性都具有一个ProtectionLevel属性。...那么,如果我们在这些特性设置了不同的保护级别,它们之间具有怎样的优先级?WCF又采用怎样的策略来决定最终的消息保护级别呢? 定义消息保护级别的六个特性分别位于如下图所示的层次结构的四个层次。...举个具体的例子,如果通过ServiceContractAttribute特性在服务契约级别将保护级别设置为Sign,该服务契约所有的操作、操作的错误契约,以及操作使用到的消息契约的默认的保护级别都变成Sign

    868110

    何在 Ubuntu Linux 设置使用 FTP 服务器?

    FTP(文件传输协议)是一种常用的网络协议,用于在客户端和服务器之间进行文件传输。在 Ubuntu Linux ,您可以设置使用 FTP 服务器,以便通过网络与其他设备共享文件。...本文将详细介绍如何在 Ubuntu Linux 设置使用 FTP 服务器。...打开 vsftpd 配置文件使用您喜欢的文本编辑器( Nano 或 Vim)打开 vsftpd 配置文件 /etc/vsftpd.conf:sudo nano /etc/vsftpd.conf2....步骤 4:访问 FTP 服务器一旦您的 FTP 服务器设置完毕并启动,您可以使用 FTP 客户端访问服务器并进行文件传输。...结论通过按照以上步骤,在 Ubuntu Linux 设置使用 FTP 服务器是相对简单的。通过安装和配置 vsftpd,您可以轻松地在本地网络上共享文件,并通过 FTP 客户端进行文件传输。

    1.7K10

    实例演示:TLSSSL在WCF的应用

    在接下来的系列文章我们正是讨论关于身份认证的主题。在前面我们已经谈到了,WCF的认证属于“双向认证”,既包括服务对客户端的认证(以下简称客户端认证),也包括客户端对服务的认证(以下简称服务认证)。...在《从两种安全模式谈起》,我们对TLS/SSL进行了简单的介绍。我们知道,客户端和服务在为建立安全上下文而进行的协商过程中会验证服务端的X.509证书否值得信任。...二、创建基于TLS/SSL的WCF服务 ? 接下来我们会通过一个简单的例子来演示如何在WCF服务中使用基于TLS/SSL的Transport安全。...从配置我们可以看到:寄宿的CalculatorService服务唯一的终结点使用了Transport模式的NetTcpBinding绑定。该绑定的客户端凭证类型为None,意味着接受匿名客户端。...在本章后续的内容,我们还将不断的使用到它们。现在我们先看讨论一下如何通过ClientCredentials来改变客户端对服务证书的认证模式。

    1.4K80
    领券