サービス デバッグ動作

ServiceDebug サンプルでは、サービス デバッグ動作の設定を構成する方法を示します。 このサンプルは、ICalculator サービス コントラクトを実装する「入門サンプル」に基づいています。 このサンプルは、サービス デバッグ動作を構成ファイルで明示的に定義します。 コードで強制的に定義することもできます。

この例では、クライアントはコンソール アプリケーション (.exe) であり、サービスはインターネット インフォメーション サービス (IIS) によってホストされます。

Note

このサンプルのセットアップ手順とビルド手順については、このトピックの最後を参照してください。

サーバーの Web.config ファイルでは、次のサンプルに示すように、ヘルプ ページと例外処理を有効にするサービス デバッグ動作を定義します。

<behaviors>
     <serviceBehaviors>
         <behavior name="CalculatorServiceBehavior">
         <!-- WARNING: Setting includeExceptionDetailInFaults = "True" could result in leaking secured server information to the client.-->
         <!-- Please set this to false when deploying -->
             <serviceDebug includeExceptionDetailInFaults="True" httpHelpPageEnabled="True"/>
         </behavior>
     </serviceBehaviors>
</behaviors>

<serviceDebug> は、サービス デバッグ動作のプロパティを変更可能にする構成要素です。 ユーザーはこの動作を変更して、次を実現することができます。

  • 例外が FaultContractAttribute を使用して宣言されていない場合でも、サービスでは、アプリケーション コードによってスローされる例外を返すことができます。 これを行うには、includeExceptionDetailInFaultstrue に設定します。 この設定は、サーバーが予期しない例外をスローしている場合のデバッグ時に役立ちます。

    重要

    この設定を本運用環境で有効にすると、セキュリティが不十分になります。 サーバーの予期しない例外には、クライアントを対象としていない情報が含まれる場合があるため、includeExceptionDetailsInFaultstrue に設定すると、情報の漏えいが発生する可能性があります。

  • また、<serviceDebug> を使用すると、ユーザーがヘルプ ページを有効または無効にできます。 各サービスは、サービスの WSDL を取得するエンドポイントなど、サービスに関する情報が含まれるヘルプ ページをオプションで公開できます。 これを有効にするには、httpHelpPageEnabled プロパティを true に設定します。 これにより、サービスのベース アドレスへの GET 要求に対して、ヘルプ ページを返すことができます。 このアドレスは、別の属性 httpHelpPageUrl を設定して変更できます。 HTTP の代わりに HTTPS を使用すると、このアドレスをセキュリティ保護できます。 これを行うには、httpsHelpPageEnabledhttpsHelpPageUrl を設定します。

このサンプルを実行すると、操作要求および応答がクライアントのコンソール ウィンドウに表示されます。 最初の 3 つの操作 (加算、減算、乗算) が正常に行われる必要があります。 最後の操作 (除算) は、0 による除算の例外によってエラーとなります。

サンプルをセットアップ、ビルド、および実行するには

  1. Windows Communication Foundation サンプルの 1 回限りのセットアップの手順を実行したことを確認します。

  2. ソリューションの C# 版または Visual Basic .NET 版をビルドするには、「 Building the Windows Communication Foundation Samples」の手順に従います。

  3. 単一または複数コンピューター構成でサンプルを実行するには、「Windows Communication Foundation サンプルの実行」の手順に従います。