次の方法で共有


<serviceDebug>

Windows Communication Foundation (WCF) サービスのデバッグ機能とヘルプ情報機能を指定します。

<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceDebug>

構文

<serviceDebug httpHelpPageBinding="String"
              httpHelpPageBindingConfiguration="String"
              httpHelpPageEnabled="Boolean"
              httpHelpPageUrl="Uri"
              httpsHelpPageBinding="String"
              httpsHelpPageBindingConfiguration="String"
              httpsHelpPageEnabled="Boolean"
              httpsHelpPageUrl="Uri"
              includeExceptionDetailInFaults="Boolean" />

属性および要素

以降のセクションでは、属性、子要素、および親要素について説明します。

Attributes

特性 Description
httpHelpPageBinding HTTP を使用してサービス ヘルプ ページにアクセスするときに使用するバインディングの種類を指定する文字列値。

System.ServiceModel.Channels.IReplyChannelをサポートする内部バインディング要素を持つバインドのみがサポートされます。 さらに、バインドの System.ServiceModel.Channels.MessageVersion プロパティは MessageVersion.Noneする必要があります。
httpHelpPageBindingConfiguration このバインディングの追加の構成情報を参照する、 httpHelpPageBinding 属性で指定されたバインディングの名前を指定する文字列。 <bindings> セクションで同じ名前を定義する必要があります。
httpHelpPageEnabled 属性で指定されたアドレスで、WCF が HTML ヘルプ ページを発行するかどうかを制御するブール値。 既定値は trueです。

このプロパティを false に設定すると、HTML ブラウザーに表示される HTML ヘルプ ページの公開を無効にすることができます。

html ヘルプ ページが、 httpHelpPageUrl 属性によって制御される場所で公開されるようにするには、この属性を true に設定する必要があります。 さらに、次のいずれかの条件も満たす必要があります。

- httpHelpPageUrl 属性は、HTTP プロトコル スキームをサポートする絶対アドレスです。
- HTTP プロトコル スキームをサポートするサービスのベース アドレスがあります。

HTTP プロトコル スキームをサポートしていない絶対アドレスが httpHelpPageUrl 属性に割り当てられている場合は例外がスローされますが、上記の条件のいずれも満たされないその他のシナリオでは、例外は発生せず、HTML ヘルプ ページもありません。
httpHelpPageUrl ユーザーが HTML ブラウザーを使用してエンドポイントを表示したときに表示されるカスタム HTML ヘルプ ファイルの相対または絶対 HTTP ベースの URL を指定する URI。

この属性を使用すると、HTTP/Get 要求 (HTML ブラウザーなど) から返されるカスタム HTML ヘルプ ファイルの使用を有効にすることができます。 HTML ヘルプ ファイルの場所は次のように解決されます。

1. この属性の値が相対アドレスの場合、HTML ヘルプ ファイルの場所は、HTTP 要求をサポートするサービス ベース アドレスの値と、このプロパティ値です。
2. この属性の値が絶対アドレスであり、HTTP 要求をサポートしている場合、HTML ヘルプ ファイルの場所はこのプロパティの値です。
3. この属性の値が絶対ですが、HTTP 要求をサポートしていない場合は、例外がスローされます。

この属性は、 httpHelpPageEnabled 属性が trueされている場合にのみ有効です。
httpsHelpPageBinding HTTPS を使用してサービス ヘルプ ページにアクセスするときに使用するバインディングの種類を指定する文字列値。

IReplyChannelをサポートする内部バインディング要素を持つバインドのみがサポートされます。 さらに、バインドの System.ServiceModel.Channels.MessageVersion プロパティは MessageVersion.Noneする必要があります。
httpsHelpPageBindingConfiguration このバインディングの追加の構成情報を参照する、 httpsHelpPageBinding 属性で指定されたバインディングの名前を指定する文字列。 <bindings> セクションで同じ名前を定義する必要があります。
httpsHelpPageEnabled 属性で指定されたアドレスで、WCF が HTML ヘルプ ページを発行するかどうかを制御するブール値。 既定値は trueです。

このプロパティを false に設定すると、HTML ブラウザーに表示される HTML ヘルプ ページの公開を無効にすることができます。

html ヘルプ ページが、 httpsHelpPageUrl 属性によって制御される場所で公開されるようにするには、この属性を true に設定する必要があります。 さらに、次のいずれかの条件も満たす必要があります。

- httpsHelpPageUrl 属性は、HTTPS プロトコル スキームをサポートする絶対アドレスです。
- HTTPS プロトコル スキームをサポートするサービスのベース アドレスがあります。

HTTPS プロトコル スキームをサポートしていない絶対アドレスが httpsHelpPageUrl 属性に割り当てられている場合は例外がスローされますが、上記の条件のいずれも満たされないその他のシナリオでは、例外は発生せず、HTML ヘルプ ページもありません。
httpsHelpPageUrl ユーザーが HTML ブラウザーを使用してエンドポイントを表示したときに表示されるカスタム HTML ヘルプ ファイルの相対または絶対 HTTPS ベースの URL を指定する URI。

この属性を使用すると、HTTPS/Get 要求 (HTML ブラウザーなど) から返されるカスタム HTML ヘルプ ファイルの使用を有効にすることができます。 HTML ヘルプ ファイルの場所は次のように解決されます。

- このプロパティの値が相対アドレスの場合、HTML ヘルプ ファイルの場所は、HTTPS 要求をサポートするサービス ベース アドレスの値と、このプロパティ値です。
- このプロパティの値が絶対アドレスであり、HTTPS 要求をサポートしている場合、HTML ヘルプ ファイルの場所はこのプロパティの値です。
- このプロパティの値が絶対ですが、HTTPS 要求をサポートしていない場合は、例外がスローされます。

この属性は、 httpHelpPageEnabled 属性が trueされている場合にのみ有効です。
includeExceptionDetailInFaults デバッグ目的でクライアントに返される SOAP エラーの詳細にマネージド例外情報を含めるかどうかを指定する値。 既定値は falseです。

この属性を true に設定すると、デバッグ目的で管理例外情報のフローをクライアントに対して有効にしたり、Web ブラウザーでサービスを閲覧するユーザー向けの HTML 情報ファイルの公開を有効にしたりできます。 注意: マネージド例外情報をクライアントに返すことは、セキュリティ 上のリスクになる可能性があります。 これは、例外の詳細によって、承認されていないクライアントが使用できる内部サービスの実装に関する情報が公開されるためです。

子要素

なし。

親要素

要素 Description
<振舞い> 動作要素を指定します。

注釈

includeExceptionDetailInFaultstrue に設定すると、FaultContractAttributeを使用して例外が宣言されていない場合でも、アプリケーション コードによってスローされた例外をサービスから返すことができます。 この設定は、サーバーが予期しない例外をスローしている場合にデバッグする場合に便利です。 この属性を使用すると、不明な例外のシリアル化された形式が返され、例外の詳細を確認できます。

注意事項

例外の詳細では、承認されていないクライアントが使用できる内部サービスの実装に関する情報が公開されるため、マネージド例外情報をクライアントに返すことはセキュリティ 上のリスクになる可能性があります。 セキュリティの問題が発生するため、制御されたデバッグ シナリオでのみ行うことを強くお勧めします。 アプリケーションをデプロイするときに、 includeExceptionDetailInFaultsfalse に設定する必要があります。

マネージド例外に関連するセキュリティの問題の詳細については、「 コントラクトとサービスでのエラーの指定と処理」を参照してください。 コード サンプルについては、「 サービス デバッグ動作」を参照してください。

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

オプションの httpHelpPageBinding 属性と httpHelpPageBinding 属性を使用すると、サービス Web ページへのアクセスに使用するバインディングを構成できます。 指定されていない場合は、サービス ヘルプ ページへのアクセスに必要に応じて、既定のバインド (HTTP および HttpsTransportBindingElement の場合は HttpTransportBindingElement) が使用されます。 組み込みの WCF バインドではこれらの属性を使用できないことに注意してください。 xref:System.ServiceModel.Channels.IReplyChannel> をサポートする内部バインディング要素を持つバインドのみがサポートされます。 さらに、バインドの System.ServiceModel.Channels.MessageVersion プロパティは MessageVersion.Noneする必要があります。

こちらも参照ください