次の方法で共有


サービスデバッグの挙動

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

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

このサンプルのセットアップ手順とビルド手順は、このトピックの最後にあります。

サーバーの 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 に設定することによって行われます。 この設定は、サーバーが予期しない例外をスローしている場合にデバッグする場合に便利です。

    Von Bedeutung

    運用環境でこの設定を有効にしても安全ではありません。 予期しないサーバー例外には、クライアント向けではない情報が含まれている可能性があるため、 includeExceptionDetailsInFaultstrue に設定すると、情報が漏洩する可能性があります。

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

サンプルを実行すると、操作要求と応答がクライアント コンソール ウィンドウに表示されます。 最初の 3 つの操作 (加算、減算、乗算) は成功する必要があります。 最後の操作 ("除算") は、0 除算例外で失敗します。

サンプルを設定、ビルド、実行するには

  1. Windows Communication Foundation サンプル One-Time セットアップ手順を実行していることを確認します。

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

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