• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

WCF项目中客户端与服务器时间问题步无法连接的解决方案

时间:2015年04月02日 15:36:01    来源:魔法猪系统重装大师官网    人气:10789

新项目中使用了WCF 实现客户端与服务器的通讯。c/s架构,客户端采用winfrom实现。项目试运行期间,很多用户都抱怨系统总是无法正常登录。

查看日志发现如下异常信息:

System.ServiceModel.Security.MessageSecurityException: 从另一方收到未进行安全处理或安全处理不正确的错误。有关错误代码和详细信息,请
参阅内部 FaultException。 ---> System.ServiceModel.FaultException: 消息中至少有一个安全令牌无法验证。

      WCF通讯采用了UserName安全认证方式,用Google大神搜索一番,上述异常多是因为客户端与服务器端时间不同步所引起的,WCF所提供的几种Binding客户端和服务端所允许的时间差可以是5分钟.

原因找到了,下面就是如何解决了,网上大多数方法是使用 命令:net time \\IP地址或服务器名 /set /yes 去同步客户端的时间,这种方式我直接给Pass掉了,原因如下:

      通过跟用户的交流发现很多用户是故意将时间提前或推后十几分钟的,原因很多就不详细列具了。

继续找其它解决方案,在国外一个论坛上发现可以使用customBinding 修改允许的最大时间偏差。let's try it!

修改前的配置文件(删减了一些配置节)如下:

01

02

03

04
           
05
            
06
             contract="Iuser"/>
07
 
08
 
09
   
10
    
11
     
12
           
13
      
14
     
15
    
16
   
17
  
18

1
将wsHttpBinding替换为customBinding后配置文件如下:
01

02

03

04
      
05
            
06
             contract="Iuser"/>
07
   
08
  
09
  
10
 
11
       
12
           
13
           
14
               
15
                   
16
                   
17
               
18
               
19
               
20
           
21
           
22
               
23
           
24
           
25
       
26
   
27

28

1
这里将充许的最大时间偏差改为59分钟。
1
到这里还不算完,以上只是修改的服务端配置文件,在客户端的app.config文件中同样要修改,客户端配置修改后如下:
01

02
      
03
    
04
              
05
                  openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
06
                   >
07
                  
08
                  
09
                      
10
                          
11
                          
12
                      
13
                      
14
                      
15
                  
16
                  
17
                      
18
                  
19
                  
20
              
21
          
22
      
23
      
24
        
25
                  bindingConfiguration="MyCustomBinding" contract="Iuser"
26
                  name="CustomBinding_Iuser" />
27
       
28
  

OK,完工,初次写博,尽请拍砖。

WCF,项,目中,客户端,与,服务器,时间,问题,步,
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部