2

WCF チャネルと組織サービスを使用して、ms dynamics 2011 用のクライアント ソフトウェアを開発しました。チャネルを作成した後、それをディクショナリに入れましDictionary<string, OrganizationServiceProxy>た。8 時間待った後、セキュリティ トークンは無効になりました。ここでメソッドを呼び出しますserviceProxy.Authenticate()(serviceProxy はコレクションから取得したオブジェクトです) が、何も起こりません。トークンが更新されておらず、チャネルを使用してダイナミクスからデータを取得できません。msdn で読んだように、Authenticate()メソッドは新しいトークンを提供するはずですが、何が間違っていますか?

4

1 に答える 1

3

Performance Best Practicesで説明されているように、トークンを監視しようとしましたか?

さらに、WCF セキュリティ トークン (トークン) を監視し、有効期限が切れる前に更新して、トークンを紛失して認証をやり直す必要がないようにします。トークンをチェックするには、OrganizationServiceProxy または DiscoveryServiceProxy クラスから継承し、トークンをチェックするビジネス ロジックを実装するカスタム クラスを作成します。または、プロキシ クラスを新しいクラスでラップします。もう 1 つの手法は、Web サービスを呼び出すたびにトークンを明示的にチェックすることです。これらの手法を示すサンプル コードは、ヘルパー コード: ServerConnectionクラスのトピックの ManagedTokenDiscoveryServiceProxy、ManagedTokenOrganizationServiceProxy、および AutoRefreshSecurityToken クラスにあります。

このクラスでトークンを自動的に更新する方法の例を見つけることができます。

于 2012-09-05T18:25:52.840 に答える