WCF チャネルと組織サービスを使用して、ms dynamics 2011 用のクライアント ソフトウェアを開発しました。チャネルを作成した後、それをディクショナリに入れましDictionary<string, OrganizationServiceProxy>
た。8 時間待った後、セキュリティ トークンは無効になりました。ここでメソッドを呼び出しますserviceProxy.Authenticate()
(serviceProxy はコレクションから取得したオブジェクトです) が、何も起こりません。トークンが更新されておらず、チャネルを使用してダイナミクスからデータを取得できません。msdn で読んだように、Authenticate()
メソッドは新しいトークンを提供するはずですが、何が間違っていますか?
質問する
1398 次
1 に答える
3
Performance Best Practicesで説明されているように、トークンを監視しようとしましたか?
さらに、WCF セキュリティ トークン (トークン) を監視し、有効期限が切れる前に更新して、トークンを紛失して認証をやり直す必要がないようにします。トークンをチェックするには、OrganizationServiceProxy または DiscoveryServiceProxy クラスから継承し、トークンをチェックするビジネス ロジックを実装するカスタム クラスを作成します。または、プロキシ クラスを新しいクラスでラップします。もう 1 つの手法は、Web サービスを呼び出すたびにトークンを明示的にチェックすることです。これらの手法を示すサンプル コードは、ヘルパー コード: ServerConnectionクラスのトピックの ManagedTokenDiscoveryServiceProxy、ManagedTokenOrganizationServiceProxy、および AutoRefreshSecurityToken クラスにあります。
このクラスでトークンを自動的に更新する方法の例を見つけることができます。
于 2012-09-05T18:25:52.840 に答える