wcf 中nettcp使用x509证书,当IsOneWay=false 时出错

问题描述

接口定义[ServiceContract(SessionMode=SessionMode.Required,CallbackContract=typeof(IDataSourceCallback))]publicinterfaceIDataSource:IClientRegisterServices{[OperationContract(IsOneWay=true)]voidIsOnLine();[OperationContract(IsOneWay=false)]voidIsOnLineNoOneWay();}

服务端代码publicvoidIsOnLine(){}publicvoidIsOnLineNoOneWay(){}

客户端代码publicclassDataSourceScDuplexClient:DuplexClientBase<IDataSource>{publicvoidIsOnLine(){if(Channel!=null)Channel.IsOnLine();}publicvoidIsOnLineNoOneWay(){if(Channel!=null)Channel.IsOnLineNoOneWay();}}

客户端调用DataSourceScDuplexClientclient=newDataSourceScDuplexClient();client.IsOnLine();//=>工作正常Console.WriteLine("DataSourceScDuplexClientIsOnLine");client.IsOnLineNoOneWay();//=>错误。等待约1分名钟后提示:请求操作在配置的超时(00:01:00)内未收到回复。分配给此操作的时间可能已经是更长超时的一部分。这可能由于服务仍在处理操作或服务无法发送回复消息。请考虑增加操作超时(将通道/代理转换为IContextChannel并设置OperationTimeout属性)并确保服务能够连接到客户端。Console.WriteLine("DataSourceScDuplexClientIsOnLineNoOneWay");

解决方案

时间: 2024-11-08 17:23:58

wcf 中nettcp使用x509证书,当IsOneWay=false 时出错的相关文章

mfc对话框-在MFC对话框中添加自己编写的OCX控件时出错

问题描述 在MFC对话框中添加自己编写的OCX控件时出错 在MFC工具箱中添加自己编写的OCX然后把控件拖拽到对话框中添加,弹出错误信息提示: Debug Assertion Failed!Program:...les(x86)Microsoft Visual Studio10.0Common7IDEdevenv/.exeFile:fddvctoolsvc7libsshipatlmfcsrcmfcwinocc.cppLine:307 然后点忽略,后运行时可以出现OCX但是这个错误是怎么回事呢 解

EF中重复操作同一个表的同一条数据时出错。

问题描述 附加类型"penson"的实体失败,因为相同类型的其他实体已具有相同的主键值.在使用"Attach"方法或者将实体的状态设置为"Unchanged"或"Modified"时如果图形中的任何实体具有冲突键值,则可能会发生上述行为.这可能是因为某些实体是新的并且尚未接收数据库生成的键值.在此情况下,使用"Add"方法或者"Added"实体状态跟踪该图形,然后将非新实体的状态相应设置

WCF安全之X509证书

概述 Windows Communication Foundation (WCF) 是 Microsoft 为构 建面向服务的应用程序而提供的统一编程模型(摘自MSDN),在分布式环境下的 安全问题尤为重要,如果你觉得使用了WCF默认的安全措施可以让你高枕 无忧,那明天你可就以回家种田了,当然,对于学习来说,足够了~,但我们讲的是真 正的项目应用,WCF在各种协议下的安全提供和保证是不尽相同的. X509 证书介绍 X.509 是由国际电信联盟(ITU-T)制定的数字证书标准,相信 这是人尽皆知

WCF security X509证书

1. Transfer Security Transfer Security 主要包括三个方面: "消息完整性(Message Integrity)"."消息机密性 (Message Confidentiality)" 和 "交互验证(Mutual Authentication)". 消息完整性必须确保消息在传输过程中没有被篡改,接收的消息是完整且正确的:消息机密性必须确保消息不会被任何第三方查阅,消息内容不会泄漏给任何非相关人员:而交互认证则是

[原创]x.509证书在WCF中的应用(CS篇)

为什么要用x.509证书?WCF的服务端和客户端之间,如果不作任何安全处理(即服务端的<security mode="None">),则所有传输的消息将以明文方式满天飞,在internet/intranet环境下无疑是很不安全的,这就是用证书的目的.(当然WCF还有其它安全机制,比如最常见的UserName方式,但通常每次都要从数据库读取用户名/密码信息进行验证,比较麻烦,开销也大,个人觉得还是证书最为方便)--关于x.509证书 的基本知识,可参见http://www.c

wcf中使用nettcp,不能使用令牌吗?

问题描述 使用SymmetricSecurityBindingElement进行令牌认证,代码如下:提示无法创建通道BindingElementCollectionbec=newBindingElementCollection();bec.Insert(0,newTransactionFlowBindingElement());bec.Insert(1,newReliableSessionBindingElement());bec.Insert(2,SecurityBindingElement.

[原创]x.509证书在WCF中的应用(Web/IIS篇)

在上一篇"x.509证书在WCF中的应用(CS篇)"里,我们知道了如何在应用程序中,利用x.509证书来验证WCF的消息安全(没看过的朋友建议先看下,地址http://www.cnblogs.com/yjmyzz/archive/2008/08/20/1272550.html),这一篇我们将尝试把x.509证书放到IIS里来验证WCF. WCF宿主在IIS和普通应用程序里,原理虽然没什么不同,但在实际测试中发现,如果服务端与客户端都采用x.509证书来验证,服务端设置的自定义验证客户端

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

由于绑定对象由一系列有序的绑定元素组成,绑定元素最终决定着信道栈中信道的组成,而信道的组成最终又决定了信道栈对消息进行处理的方式和能力,所有要确定绑定的特性和能力,我们可以通过查看其绑定元素的构成来一窥究竟.为此我们我们写了一个简单的方法,用于列出一个具体的绑定对象所有的绑定元素,在介绍一个个具体的系统绑定中,我会使用该方法: 1: static void ListAllBindingElements(Binding binding) 2: { 3: BindingElementCollecti

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

由于绑定对象由一系列有序的绑定元素组成,绑定元素最终决定着信道栈中信道的组成,而信道的组成最终又决定了信道栈对消息进行处理的方式和能力,所有要确定绑定的特性和能力,我们可以通过查看其绑定元素的构成来一窥究竟.为此我们我们写了一个简单的方法,用于列出一个具体的绑定对象所有的绑定元素,在介绍一个个具体的系统绑定中,我会使用该方法: static void ListAllBindingElements(Binding binding) { BindingElementCollection elemen