2

Dynamics CRM Online Web サービスをラップし、REST API を提供する WebApi プロジェクトがあります。CRM からいくつかの連絡先を取得し、発信者に返す単純なコントローラーがあります。

ローカルエミュレーターで実行すると、すべて正常に動作します。ただし、プロジェクトを Azure にデプロイすると、ホーム ページにアクセスできますが、コントローラーはすべて http 500 エラーを返します。なぜこれが起こるのでしょうか?また、トラブルシューティングを行って詳細を確認するにはどうすればよいですか?

アップデート

この問題は、Azure で Web ロールを実行している Server 2012 インスタンスに Microsoft.IdentityModel.dll が存在しないことにあります。これは、RDP で Web ロール インスタンスを開き、Fiddler をインストールして、Fiddler からローカル IIS サーバーに要求を送信することで見つかりました。詳細なエラーで応答しました。

ここでの問題は、Windows Azure Web ロールで IdentityModel を有効にする方法を見つけることです。Server 2012 の [役割と機能の追加] ウィザードを使用して追加できるはずですが、Web の役割では完全にロックダウンされています。まだチェックされていないボックスをチェックすることはできません。これは可能ですか?

4

1 に答える 1

1

問題は、本質的に存在しない場合に、Windows Identity Foundation へのアクセス権を Web ロールに付与することです。Marc Schweigert は、ここでこれを行うための明確な手順を提供しています。

http://blogs.msdn.com/b/devkeydet/archive/2013/01/27/crm-online-amp-windows-azure-configuring-single-sign-on-sso.aspx

ビデオの 23:00 マークに移動すると、必要な 4 つの手順が表示されます。

  1. Microsoft.IdentityModel.dll を参照します (WIF SDK がインストールされている必要があります)。コピーをローカルに設定 = true
  2. Web ロール プロジェクトに RegisterWIFGAC.cmd を作成します。
  3. RegisterWIFGAC.cmd を呼び出すスタートアップ タスクを ServiceDefinition.csdef に作成します。
  4. GacUtil をプロジェクト (スタートアップ タスクで使用) に追加して、Web ロールが開始されるたびに Microsoft.IdentityModel.dll を GAC に配置します)。
于 2013-04-04T14:56:49.023 に答える