エクスポート (0) 印刷
すべて展開

ロール インスタンス起動時の System.ServiceModel.CommunicationObjectFaultedException

更新日: 2011年7月

Applies to: Windows Azure SDK 1.3 and later

現象: このトピックでは、System.ServiceModel.CommunicationObjectFaultedException エラー メッセージの予想される原因と解決策について説明します。

コンピューティング エミュレーターを使用するローカル開発環境でロールを起動したときに "通信オブジェクト System.ServiceModel.Channels.ServiceChannel は、状態が Faulted であるため通信に使用できません" エラーが発生します。

エラーが発生した通信オブジェクトの例外

原因 1: コンピューティング エミュレーターで web.config ファイルが読み取り専用としてマークされている。

SDK 1.3 リリースでは、web.config ファイルが読み取り専用としてマークされていると、Windows Azure コンピューティング エミュレーターにこのダイアログ ボックスが表示されます。クラウドの Windows Azure にデプロイする場合、このエラーは発生しません。これは、クラウド デプロイではファイル属性がリセットされて、web.config ファイルが書き込み可能になるためです。コンピューティング エミュレーターによって実行中にサイトのコンテンツがコピーされないことに注意してください。

解決策: web.config ファイルから読み取り専用属性を削除します。ソース管理システムを使用している場合は、このファイルのチェックアウトが必要になることがあります。

SDK 1.3 では ASP.NET の使用を簡略化するために、Windows Azure 環境内で ASP.NET コンピューター キーがサイトごとにそのサイトの web.config ファイルを使用して自動的に構成されます。この自動的に提供されるコンピューター キーは、同じサイトのすべてのインスタンスに使用される場合は同一ですが、それ以外の場合 (複数のデプロイにまたがって使用される場合など) は異なります。

以前のリリースでは、コンピューター キーはコンピューター レベルで設定されていました。 

原因 2: 複数のロール インスタンスがコンピューティング エミュレーターの 1 つの構成ファイルに書き込んでいる。

このエラーは、IIS ベースの同じ Web ロールのインスタンスを複数起動すると、SDK 1.3 リリースで発生する場合があります。すべてのインスタンスがディスク上の同じ場所を参照するので、1 つの Web 構成ファイルに書き込もうとし、ロールの起動時にクラッシュが発生することがあります。

解決策: コンピューティング エミュレーターの使用時は、1 ロールあたりのインスタンス数を 1 つに制限します。Windows Azure にデプロイする前に、必要に応じてインスタンス数をより大きい値に設定し直します。

原因 3: プロジェクトに含まれるファイルの数が多い。

このエラーは、大量のファイルが含まれるロールを起動すると、SDK 1.3 リリースで発生する場合があります。2,000 ~ 5,000 個のファイルが存在するときにこのエラーが発生することがあります。エラーはタイミングに依存し、VM 上で実行されている他のプロセスもパフォーマンスに影響を与えるため、ファイルの数を正確に指定することはできません。起動時、プロジェクトのすべてのファイルに対して、適切な ACL が適用される必要があります。このプロセスには時間がかかり、ロールの起動時にクラッシュが発生することがあります。

解決策: プロジェクトに含まれるファイルの数を制限します。

原因 4: web.config ファイルにエラーがある。

このエラーは、web.config ファイルに構成エラーが含まれていると、SDK 1.3 リリースで発生する場合があります。考えられるエラーのいくつかを次に示します。

  • 終了タグがない、引用符が対応しないなど、XML の書式が無効である。

  • <configSections> が重複している。

  • machineKey 要素が重複している。

  • machineKey 検証が AES、SHA1、3DES、または MD5 以外に設定されている。

解決策: web.config ファイル内のエラーを修正します。

表示:
© 2014 Microsoft