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 サービスをデバッグする