`
buliedian
  • 浏览: 1248766 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

WCF客户端无法访问服务原因之一时间不同步问题

阅读更多

版权声明

请尊重原创作品。转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正。

在使用WCF服务时,如果客户端调用服务时出现如下错误:
System.ServiceModel.Security.MessageSecurityException: 从另一方收到未进行安全处理或安全处理不正确的错误。有关错误代码和详细信息,请
参阅内部 FaultException。 ---> System.ServiceModel.FaultException: 消息中至少有一个安全令牌无法验证。
--- 内部异常堆栈跟踪的结尾 ---
Server stack trace:
在 System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.ProcessReply(Message reply, SecurityProtocolCorrelationState correlationState, TimeSpan timeout)
在 System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)
在 System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.DoOperation(SecuritySessionOperation operation, EndpointAddress target, Uri via, SecurityToken currentToken, TimeSpan timeout)
在 System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.GetTokenCore(TimeSpan timeout)
在 System.IdentityModel.Selectors.SecurityTokenProvider.GetToken(TimeSpan timeout)
在 System.ServiceModel.Security.SecuritySessionClientSettings`1.ClientSecuritySessionChannel.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
在 System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan timeout)
在 System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
在 System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call(ServiceChannel channel, TimeSpan timeout)
在 System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce(TimeSpan timeout, CallOnceManager cascade)
在 System.ServiceModel.Channels.ServiceChannel.EnsureOpened(TimeSpan timeout)
在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)

Exception rethrown at [0]:
在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
在 CommonData.MembershipRole.IMembershipRole.ValidateUser(String username, String password)
在 CommonData.MembershipRole.MembershipRoleClient.ValidateUser(String username, String password)
在 WMSClient.LoginForm.bdlogin_DoWork(Object sender, DoWorkEventArgs e) in line:CommonData.LoggingService.Error(:0):off.CommonData.LoggingService
这种情况90%是因为客户端和服务端时间不一致造成的,客户端和服务端所允许的时间差可以是5分钟.
解决方案是客户端要和服务端进行时间同步.
可以使用命令:net time \\IP地址或服务器名 /set /yes ,但这样操作对服务器的安全有影响,目前我还没有想到好的解决方法.

分享到:
评论

相关推荐

    wcf同步获取服务器时间

    总之,"WCF同步获取服务器时间"涉及使用WCF服务暴露一个返回当前时间的方法,然后在客户端通过同步调用来获取这个时间。虽然这种方式简单直观,但由于同步调用可能导致阻塞,所以在高并发或性能要求较高的场景下,...

    android wcf webservice客户端+服务器

    Android WCF Webservice客户端与服务器的交互是移动应用与企业级服务进行数据交换的一种常见方式。Windows Communication Foundation (WCF) 是微软推出的一种面向服务的通信框架,它为构建高度可互操作的分布式应用...

    C++调用WCF完整示例

    本文将深入探讨如何在C++中调用WCF服务,通过一个完整的示例来阐述整个过程,帮助开发者更好地理解这一技术。 首先,我们要明白WCF是微软.NET框架的一部分,它提供了一种统一的方式来构建和部署面向服务的应用程序...

    C#客户端通过WCF远程访问Sqlite数据库

    标题 "C#客户端通过WCF远程访问Sqlite数据库" 描述了一个使用C#语言和Windows Communication Foundation (WCF)技术构建的应用程序,该程序能够使客户端远程操作Sqlite数据库,从而将原本的单机数据库系统转变为可...

    应用WCF分布式框架实现移动数据同步.pdf

    使用WCF封装服务端同步组件,可以将服务端同步组件作为独立的应用程序服务层来为所有客户端提供同步服务。这种设计方式解决了传统远程数据访问和合并复制同步方式在数据安全性和适应复杂网络环境方面存在的问题。 ...

    Silverlight间接WCF服务调用示例

    而间接调用则涉及一个中间层,即Silverlight应用通过中间层来访问WCF服务,而不是直接与服务通信。 3. **设置项目结构** - **SL项目1**:这是包含对站点A WCF服务直接调用的Silverlight项目。 - **SL项目2**:这...

    创建Windows Service,定时监控客户端服务程序

    3. 在客户端,通过添加服务引用或手动生成代理类来访问WCF服务。 同步事件是WCF中的一种通信模式,允许服务端执行操作并等待客户端响应。在调用服务时,可以设置适当的回调函数,服务执行完成后会触发该回调,实现...

    基于WCF多线程的SOCKET文件传输服务

    2. **客户端实现**:客户端通过WCF客户端代理与服务端通信,调用相应的服务接口。在多线程环境下,每个文件传输任务可以在一个独立的线程中执行,以实现并发。 3. **并发控制**:为了保证服务端的稳定性,需要对...

    WCF,EF框架

    7. **客户端调用**:创建并配置WCF客户端,方便其他应用或组件调用服务。 通过深入理解WCF和EF的工作原理,以及它们之间的协同工作方式,你可以创建出高效、可扩展的分布式应用程序。不断学习和实践,你将在IT行业...

    WCF培训讲稿WCF入门讲稿

    4.2 **请求-响应模式(Request/Reply)**:最常见的模式,服务接收到请求后返回一个响应,适用于需要同步交互的情况。 4.3 **双工模式(Duplex)**:允许服务和客户端之间双向通信,类似于回调机制,常用于实时通信...

    《WCF按部就班学习系列8_WCF并发管理概述》

    例如,Singleton实例模型通常与单线程并发模式结合,以保证同一时间只有一个客户端可以访问服务;而PerCall实例模型通常与多线程并发模式配合,每个调用都会创建一个新的服务实例,从而可以同时处理多个请求。 **限...

    WCF聊天工具,即时通信

    在C#中开发WCF聊天工具,开发者需要编写服务端代码(实现服务契约和服务行为),以及客户端代码(创建服务代理并调用服务)。此外,还需要配置服务的元数据(服务描述),以便客户端能够发现和使用服务。 **文件...

    用例浅谈WCF实例与并发

    3. Multiple:多线程模式,允许多个线程并发访问服务类实例,提高吞吐量,但需要开发者处理线程同步问题。 通过组合不同的InstanceContextMode和ConcurrencyMode,我们可以定制WCF服务的行为以适应不同的应用场景。...

    silverlight与WCF RIA Service数据库操作相关

    而WCF RIA Services(Windows Communication Foundation Rich Internet Application Services)是微软为Silverlight应用程序提供的一种服务框架,主要用于简化客户端和服务器之间的数据交互,特别是在数据库操作中的...

    WCF学习笔记,一步一步教你学习WCF

    - **定义**:异步调用允许服务在处理长时间运行的任务时不阻塞主线程。 - **优势**: - 提升性能。 - 增强用户体验。 - **实现**: - 使用`BeginXXX`和`EndXXX`方法。 #### 八、数据传输 - **概念**:数据传输...

    wcf服务端异步程序

    WCF(Windows Communication Foundation)是微软提供的一种面向服务的架构,用于构建分布式应用程序。它提供了丰富的功能,包括安全、事务、可靠消息传递等。在处理大量并发请求时,使用异步操作是提高性能的关键。...

    [实例]Windows phone8 调用WCF服务

    完成WCF服务的创建后,需要将服务寄宿起来以供客户端调用。可以通过创建一个控制台应用程序作为服务宿主。以下步骤概述了服务宿主的设置: 1. 添加宿主项目:在解决方案中添加一个新的控制台应用程序项目(Console...

    silverlight访问WCF实例开发培训

    【银光轻量级框架访问WCF服务实例开发详解】 本次培训主要聚焦于Silverlight客户端如何跨域调用WCF(Windows Communication Foundation)服务。Silverlight作为一种强大的RIA(Rich Internet Application)开发技术...

    WCF 即时通讯 IM 聊天 源码

    WCF是.NET框架中的一个核心组件,用于构建分布式应用程序,尤其适用于实现服务间的通信。即时通讯(IM)通常指的是允许用户实时交换消息的应用,例如微信、QQ等。因此,这个项目可能是为了实现类似功能的一个自定义...

Global site tag (gtag.js) - Google Analytics