問題タブ [microsoft-dynamics-webapi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1203 参照

office365 - Javascript を使用して Dynamics 365 Operations JSON ベースのカスタム サービスを呼び出すときに CORS エラーを取得する

単純な SPA アプリケーションを開発しており、Dynamics 365 for Operations JSON ベースのカスタム サービスにアクセスしようとしています。認証に ADAL.js ライブラリを使用しています。This Dynamics Community threadから私がフォローしている認証の方法。

しかし、有効なトークンを正常に取得し、取得したトークンでターゲット API を呼び出すと、API を呼び出すことができず、CORSエラーが発生します。

同じ PSB スクリーンショット

ここに画像の説明を入力

以下は私のコードサンプルです:

0 投票する
2 に答える
1699 参照

c# - C# プラグインで Dynamics Web API を呼び出す

新しいクライアントの作成を処理するために、Microsoft Dynamics にビジネス プロセス フローがあります。プロセスが終了したら、プラグインを呼び出してカスタム処理を実行するアクションを開始するワークフローを添付します。この記事に従って、このプロセスを設定しています。

私のプラグインでは、Dynamics Web API への呼び出しがあります (以下のコードを参照)。行にヒットするresponseMessage = client.GetAsync(url).Result;と、プラグインはエラーを返さずに終了します。プラグイン登録ツールでデバッグしているときに、プラグイン登録ツールがクラッシュし、再起動する必要があります。ネットワーク トラフィックを見ると、この呼び出しは401 - Unauthorizedエラーで失敗しているように見えます。

HttpClientコンソール アプリからこれと同じ呼び出しを試みると、呼び出しは成功します。認証のためにいくつかの異なる資格情報を試しましたが、成功しませんでした。GetAsyncまた、いくつかの異なる方法で関数を呼び出してみました。このエラーは非同期または認証方法に関連していますか? ここで何が欠けていますか?


アップデート

Dynamics 2016 オンプレミスを使用しています。

Web API を使用する理由は、この呼び出しが、複数のシステム間のインターフェイスとなる、開発したライブラリで発生するためです。ライブラリはプラグイン内で使用されますが、他のアプリケーションのプラグインの外でも使用できます。提供したコード サンプルは、ライブラリで失敗しているコードのチャンクです。コードのチャンクをプラグインに直接取り込んで、エラーがライブラリに関連しているのか、プラグインに関連しているのかを確認しました。

私たちは、client.GetAsync(url).Result呼び出しは実際には正しい値を返していました。ネットワーク トラフィックで、2 回の呼び出しが失敗してから 3 回目の呼び出しが成功し、正しい値が返されたことを確認できませんでした (下のスクリーンショットを参照)。奇妙なことに、このコード行をデバッグするときに、コード行をステップ オーバーすると、ネットワーク トラフィックが正しい値を返したことを示している間に、プラグイン登録ツールがクラッシュします。このコード行の後にブレークポイントを設定すると、プラグイン登録ツールはクラッシュせず、応答に正しい値が含まれます。この動作は、プラグインで直接ではなく、ライブラリでのデバッグに戻ると変わります。ライブラリでは、ネットワーク トラフィックが正常な応答を示していても、ブレークポイントを設定した場所に関係なく、この行に到達するとプラグイン登録ツールが常にクラッシュします。

ネットワーク トラフィック


更新 2

私のライブラリはWeb APIに対して複数の異なる呼び出しを正常に行っているように見えるので、プラグイン登録ツールが実際に機能していない呼び出しよりも多くのWeb API呼び出しを処理できないことが問題だと考えています。

ネットワーク トラフィック