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

最近,经常有客户反应,前天还用的好好的系统,今天就不能用了。

考虑到系统近来没有做过改动和升级操作,所以从客户的机器环境入手解决,最后发现客户端的日期时间和服务端的日期时间有较大差异,将客户端机器修改成和服务端的日期时间一致后,系统恢复正常。

查了一下资料,原来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 条评论
登录 后参与评论

相关文章

来自专栏kangvcar

[face_recognition中文文档] 第5节 特约贡献

1212
来自专栏北京马哥教育

理解Inode

inode是什么 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5...

3195
来自专栏FreeBuf

自己动手打造Github代码泄露监控工具

众说周知,Github这块肥肉很受安全人员和黑客关注。因为很多新进程序猿和老手不经意就会把他们的劳动成果分享出来,而往往这种开源精神,奉献精神会对企业带来一定的...

1752
来自专栏蛋未明的专栏

myweb框架简单说明

1283
来自专栏xingoo, 一个梦想做发明家的程序员

《linux c编程指南》学习手记1

第一章  c语言基础 linux概述 虚拟文件系统VFS 进程通信机制:管道,信号    消息队列  信号灯  共享内存 第二章  vim与emacs 两种主流...

1756
来自专栏ytkah

如何将finecms链接URL中的list和show去掉

  finecms上手还算比较快吧,对seo关注的朋友会想着将它的url改造了,里面多了-list-和-show-,可以直接去掉,下面就随着ytkah一起来进行...

3006
来自专栏张戈的专栏

Linux系统内存监控、性能诊断工具vmstat命令详解

最近,烦心事有点多,博客也像是进入了便秘期。虽然还远远不到说放弃的地步,但总有一种挤不出牙膏的郁闷感。很怀念前几个月的冲劲和激情,一天都能存好几篇优质草稿。 看...

3605
来自专栏Java面试通关手册

可能是全网把 ZooKeeper 概念讲的最清楚的一篇文章

相信大家对 ZooKeeper 应该不算陌生。但是你真的了解 ZooKeeper 是个什么东西吗?如果别人/面试官让你给他讲讲 ZooKeeper 是个什么东...

2105
来自专栏deepcc

jquery ajax 请求中多出现一次OPTIONS请求及其解决办法

1171
来自专栏跟着阿笨一起玩NET

C#消息队列(RabbitMQ)零基础从入门到实战演练

3012

扫码关注云+社区

领取腾讯云代金券