我使用WCF频道和组织服务为ms dynamics 2011开发了一个客户端软件。创建频道后,我将其放入字典Dictionary<string, OrganizationServiceProxy>
,等待8小时后,安全令牌不再有效。现在我调用serviceProxy.Authenticate()
方法(serviceProxy是从我的集合中检索的对象),没有任何反应。我的令牌尚未更新,我无法使用我的频道从动态中检索数据。正如我在msdn中读到的那样,Authenticate()
方法应该给我一个新的令牌,我做错了什么?
答案 0 :(得分:3)
您是否尝试过像Performance Best Practices?
中所述监控令牌此外,监视您的WCF安全令牌(令牌)并在其到期之前刷新它,这样您就不会丢失令牌并且必须重新开始身份验证。要检查令牌,请创建一个继承自OrganizationServiceProxy或DiscoveryServiceProxy类的自定义类,并实现检查令牌的业务逻辑。或者将代理类包装在新类中。另一种技术是在每次调用Web服务之前显式检查令牌。 演示这些技术的示例代码可以在Helper Code:ServerConnection Class主题中的ManagedTokenDiscoveryServiceProxy,ManagedTokenOrganizationServiceProxy和AutoRefreshSecurityToken类中找到。
您将找到一个示例,说明如何在此类中自动续订令牌。