Visual Studio での Windows Communication Foundation (WCF) またはWCF Data Services参照のトラブルシューティング

適用対象: Visual Studio

この記事では、Visual Studio で Windows Communication Foundation (WCF) またはWCF Data Servicesへの参照を操作しているときに発生する可能性がある一般的な問題の解決策を示します。

サービス参照を更新または削除する場合は、「 WCF データ サービス参照の追加、更新、または削除」を参照してください

サービス アドレスが指定されていない場合のエラー

アドレスのない [移動 ] ボタンを選択すると、"サービスのアドレスを入力してください" というエラー メッセージが表示されることがあります。この問題を解決するには、サービスのアドレスを特定して入力します。

  • ソリューション内のサービスの場合は、[ 検出 ] ボタンを使用して検索して選択し、もう一度 [移動 ] ボタンを試すことができます。
  • インターネット上のどこかでホストされているサービスの場合は、「 WCF サービス参照を追加する」の手順に従って追加します。

サービスからデータを返すエラー

サービスから または DataTableDataSet返すと、"受信メッセージの最大サイズ クォータを超えました" という例外が発生する可能性があります。 既定では、一部のバインディングの MaxReceivedMessageSize プロパティは比較的小さい値に設定され、サービス拒否攻撃への露出を制限します。 この値を増やして、例外を回避できます。 詳細については、MaxReceivedMessageSizeを参照してください。

このエラーを修正するには:

  1. ソリューション エクスプローラーで、app.config ファイルをダブルクリックして開きます。
  2. プロパティを MaxReceivedMessageSize 見つけて、大きな値に変更します。

ソリューションにサービスが見つかりません

[サービス参照の追加] ダイアログ ボックスで [検出] ボタンを選択すると、ソリューション内の 1 つ以上の WCF サービス ライブラリ プロジェクトがサービスの一覧に表示されません。 この問題は、サービス ライブラリがソリューションに追加されていても、まだコンパイルされていない場合に発生する可能性があります。

このエラーを修正するには:

  1. ソリューション エクスプローラーで、WCF サービス ライブラリ プロジェクトを右クリックします。
  2. [ ビルド] を選択します

リモート デスクトップ経由でサービスにアクセス中にエラーが発生しました

ユーザーがリモート デスクトップ接続経由で Web ホスト WCF サービスにアクセスし、ユーザーに管理アクセス許可がない場合は、NTLM 認証が使用されます。 ユーザーに管理アクセス許可がない場合、ユーザーは次のエラー メッセージを受け取る可能性があります。"HTTP 要求はクライアント認証スキーム 'Anonymous' で承認されていません。 サーバーから受信した認証ヘッダーは 'NTLM' でした。

このエラーを修正するには:

  1. Web サイト プロジェクトで、[ プロパティ ] ページを開きます。
  2. [スタート オプション] タブで、[NTLM 認証チェック] ボックスをオフにします。

注:

NTLM 認証は、WCF サービスのみを含む Web サイトに対してのみ無効にする必要があります。 WCF サービスのセキュリティは、 web.config ファイルの構成によって管理されます。 これにより、NTLM 認証が不要になります。

生成されたクラス設定のアクセス レベルは影響しません

[サービス参照の構成] ダイアログ ボックスの [生成されたクラスのアクセス レベル] オプションを [内部] または [フレンド] に設定すると、必ずしも機能しない場合があります。 オプションがダイアログ ボックスで設定されている場合でも、結果として得られるサポート クラスは、 の Publicアクセス レベルで生成されます。 これは、 を使用してシリアル化されたものなど、特定の型の既知の XmlSerializer制限です。

サービス コードのデバッグ中にエラーが発生しました

クライアント コードから WCF サービスのコードにステップインすると、シンボルの欠落に関連するエラーが発生する可能性があります。 これは、ソリューションの一部であったサービスがソリューションから移動または削除されたときに発生する可能性があります。

現在のソリューションの一部である WCF サービスへの参照を最初に追加すると、サービス プロジェクトとサービス クライアント プロジェクトの間に明示的なビルド依存関係が追加されます。 これにより、クライアントが常に最新のサービス バイナリにアクセスすることが保証されます。これは、クライアント コードからサービス コードへのステップ実行などのシナリオをデバッグする場合に特に重要です。

サービス プロジェクトがソリューションから削除された場合、この明示的なビルド依存関係は無効になります。 Visual Studio では、必要に応じてサービス プロジェクトが再構築されることを保証できなくなりました。

このエラーを解決するには、サービス プロジェクトを手動で再構築します。

  1. [ツール] メニューの [オプション] を選択します。
  2. [ オプション ] ダイアログ ボックスで、[ プロジェクトとソリューション] を展開し、[ 全般] を選択します。
  3. [詳細なビルド構成チェック表示する] ボックスが選択されていることを確認し、[OK] を選択します
  4. WCF サービス プロジェクトを読み込みます。
  5. [Configuration Manager] ダイアログ ボックスで、[アクティブ なソリューションの構成] を [デバッグ] に設定します。 詳細については、「 方法: 構成を作成および編集する」を参照してください。
  6. ソリューション エクスプローラーで、WCF サービス プロジェクトを選択します。
  7. [ ビルド ] メニューの [ 再構築 ] を選択して、WCF サービス プロジェクトを再構築します。

ブラウザーに表示されないWCF Data Services

WCF Data Service でデータの XML 表現を表示しようとすると、インターネット エクスプローラーでデータが RSS フィードとして誤って解釈される可能性があります。 RSS フィードを表示するオプションが無効になっていることを確認します。

このエラーを解決するには、RSS フィードを無効にします。

  1. Internet Explorer の [ツール] メニューで、[インターネット オプション] を選択します。
  2. [ コンテンツ ] タブの [ フィード ] セクションで、[ 設定] を選択します。
  3. [フィード設定] ダイアログ ボックスで、[フィードの読み取りビューチェックをオンにする] ボックスをオフにし、[OK] を選択します
  4. [OK] をクリックして、[インターネット オプション] ダイアログ ボックスを閉じます。