WCF デバッグの制約

このトピックの内容は、次の製品に該当します。

エディション

Visual Basic

C#

F#

C++

Web Developer

Express

トピック該当なし トピック該当なし トピック該当なし トピック該当なし トピック該当

Pro、Premium、Ultimate

トピック該当 トピック該当 トピック該当なし トピック該当なし トピック該当

WCF サービスのデバッグを開始するには、次の 3 つの方法があります。

  • サービスを呼び出すクライアント プロセスをデバッグします。 デバッガーがサービスにステップ インします。 サービスは、クライアント アプリケーションと同じソリューションになくてもかまいません。

  • サービスを要求するクライアント プロセスをデバッグします。 サービスは、ソリューションの一部である必要があります。

  • [プロセスにアタッチ] を使用して、現在実行されているサービスにアタッチします。 サービス内部でデバッグが開始されます。

このトピックでは、これらのシナリオの制約について説明します。

サービスへのステップ インの制約

デバッグ中のクライアント アプリケーションのサービスにステップ インするには、次の条件を満たす必要があります。

  • クライアントは、同期クライアント オブジェクトを使用してサービスを呼び出す必要があります。

  • コントラクト操作では、一方向の操作を使用できません。

  • サーバーが非同期の場合、サービスのコードを実行している間は、完全な呼び出し履歴を表示できません。

  • app.config ファイルまたは Web.config ファイルの次のコードでデバッグが有効にされている必要があります。

    <system.web>
      <compilation debug="true" />
    </system.web>
    

    このコードは一度だけ追加する必要があります。 コードを追加するには、.config ファイルを編集するか、[プロセスにアタッチ] を使用してサービスにアタッチします。 サービスで [プロセスにアタッチ] を使用すると、デバッグ コードが自動的に .config ファイルに追加されます。 その後は、.config ファイルを編集せずにサービスをデバッグし、ステップ インできます。

サービスからのステップ アウトの制約

サービスからステップ アウトしてクライアントに戻る際には、サービスへのステップ インと同じ制約があります。 また、デバッガーをクライアントにアタッチする必要があります。 クライアントをデバッグし、サービスにステップ インしても、デバッガーはサービスにアタッチしたままです。 これは、[デバッグ開始] を使用してクライアントを起動する場合にも、[プロセスにアタッチ] を使用してアタッチする場合にも当てはまります。 サービスにアタッチしてデバッグを開始した場合、デバッガーはまだクライアントにアタッチされていません。 このとき、サービスからステップ アウトしてクライアントに戻る必要がある場合は、最初に [プロセスにアタッチ] を使用して、クライアントに手動でアタッチします。

サービスへのオート アタッチの制約

サービスへのオート アタッチには、次の制約があります。

  • サービスは、デバッグしている Visual Studio ソリューションの一部である必要があります。

  • サービスはホストされている必要があります。 サービスは、Web サイト プロジェクト (ファイル システムおよび HTTP)、Web アプリケーション プロジェクト (ファイル システムおよび HTTP)、または WCF サービス ライブラリ プロジェクトの一部にすることができます。 WCF サービス ライブラリ プロジェクトは、サービス ライブラリまたはワークフロー サービス ライブラリです。

  • サービスは、WCF クライアントから起動される必要があります。

  • app.config ファイルまたは Web.config ファイルの次のコードでデバッグが有効にされている必要があります。

    <system.web>
      <compilation debug="true" />
    <system.web>
    

セルフホスト

セルフホストされているサービスは、IIS 内部で実行されていない WCF サービス、WCF サービス ホスト、または ASP.NET 開発サーバーです。 セルフホストされているサービスをデバッグする方法については、「方法 : セルフホストされている WCF サービスをデバッグする」を参照してください。

セルフホスト

ASP.NET 3.0 または 3.5 アプリケーションのデバッグを可能にするには、Visual Studio 2010 をインストールする前に ASP.NET 3.0 または 3.5 をインストールする必要があります。 Visual Studio 2010 が ASP.NET 3.0 または 3.5 より前にインストールされていると、ASP.NET 3.0 または 3.5 アプリケーションのデバッグ時にエラーが発生します。 エラー メッセージは、「サーバーに自動的にステップ インできません。」です。 この問題を解決するには、Windows の [コントロール パネル][プログラムと機能] を使用して、Visual Studio 2010 のインストールを修復します。

参照

処理手順

方法 : セルフホストされている WCF サービスをデバッグする

その他の技術情報

WCF サービスのデバッグ