WCF客户端和服务器时间不一致,导致通道建立失败的问题)

本文转载:http://www.cnblogs.com/bcbr/articles/2288374.html

最近,经常有客户反应,前天还用的好好的系统,今天就不能用了。
考虑到系统近来没有做过改动和升级操作,所以从客户的机器环境入手解决,最后发现客户端的日期时间和服务端的日期时间有较大差异,将客户端机器修改成和服务端的日期时间一致后,系统恢复正常。
查了一下资料,原来WCF安全校验通道,在建立时,会将客户端和服务端的时间进行对比,如果差异超过一定范围,通道建立工作就会失败;这个时间范围默认为5分钟,可通过配置进行修改,具体方法可到网上搜索。
另外,客户端为什么用的好好的,突然就不行了,最后检查发现,客户端的机器在同步网络上的时间,这样,在客户端的机器同步了网络时间并且和服务端时间不一致时,系统就会出现异常。
好了,既然发现了问题,那么怎么解决呢,想到的办法有3个:
1.将WCF配置为非安全校验类型,这个风险较大,直接放弃
2.修改配置,将5分钟差异范围增大为30分钟,或更长,如下:
  这个方法带来的问题是,我们必须使用customBinding绑定方式;并且,各个客户端的时间可能不一致,导致业务数据混乱
  <customBinding>
       <binding name="MyCustomBinding">
           <transactionFlow />
           <security authenticationMode="UserNameForSslNegotiated">
               <secureConversationBootstrap>
                   <localClientSettings maxClockSkew="00:30:00" />
                   <localServiceSettings maxClockSkew="00:30:00" />
               </secureConversationBootstrap>
               <localClientSettings maxClockSkew="00:30:00" />
               <localServiceSettings maxClockSkew="00:30:00" />
           </security>
           <textMessageEncoding>
               <readerQuotas maxStringContentLength="500000"/>
           </textMessageEncoding>
           <httpTransport maxReceivedMessageSize="10485760" maxBufferPoolSize="524288" />
       </binding>
   </customBinding>
3.系统自动同步服务端的时间,这样就能解决客户端和服务端时间不一致的问题,并却还能保证各个客户端的时间一致;具体实现方法很多,这里不再赘述。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏GopherCoder

『Ansible 上手指南:2』

24640
来自专栏数据和云

数据恢复-SQL被注入攻击程序的应对策略(ORA-16703)

前几天某客户紧急求助我们,其Oracle数据库由于重启之后无法正常启动。最后通过数据库全备进行了一天一夜的恢复,最后仍然无法正常打开数据库。 alter dat...

39160
来自专栏企鹅号快讯

使用postman快速建立MOCK使用篇

首先介绍一下Mock,借用一下百度百科解释:mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法, 其...

1.2K50
来自专栏aCloudDeveloper

Linux探秘之用户态与内核态

一、 Unix/Linux的体系架构 ?   如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一...

25880
来自专栏逢魔安全实验室

某移动应用安全加固与脱壳技术研究与实例分析

66480
来自专栏owent

捣鼓一个协程库

今年准备安安心心写一个协程库。一方面是觉得协程挺有意思,另一方面也是因为C/C++在这方面没有一个非常权威的解决方案。 按照我自己风格还是喜欢C++,所以协程...

11020
来自专栏cloudskyme

maven 学习总结

1、关于Maven 最近学了一些maven方面的知识,感觉这个工具挺好用,为防遗忘现总结一下。Maven是一个项目管理工具,它可以通过一段描述信息来管理项目的构...

35650
来自专栏魏琼东

基于DotNet构件技术的企业级敏捷软件开发平台 - AgileEAS.NET - 会话

     会话从字面意义上来理解,是一次对话,在我们系统中怎么理解呢,会话就是一次交互,应和程序客户端和服务器端进行一个业务交互就是一个会话,会话生存与客户与服...

20060
来自专栏北京马哥教育

Linux 初步知识详解

1. 描述计算机的组成及其功能 一个完整的计算机系统由硬件系统和软件系统两大部分组成 冯诺依曼体系下的计算机五大部件 CPU:运算器、控制器、寄存器、缓存(一二...

42470
来自专栏desperate633

深入理解--异步和非阻塞同步和阻塞异步和非阻塞

异步和非阻塞的概念实际上已经出现了很长一段时间。但是异步真正开始流行起来,是因为AJAX技术逐渐成为主流的web开发技术。非阻塞的概念真正流行起来,是当java...

10940

扫码关注云+社区

领取腾讯云代金券