<serviceDebug>

Gibt Debug- und Hilfeinformationsfunktionen für einen WCF-Dienst (Windows Communication Foundation) an.

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

Syntax

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

Attribute und Elemente

In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.

Attribute

attribute Beschreibung
httpHelpPageBinding Ein Zeichenfolgenwert, der den Typ der zu verwendenden Bindung beim Zugriff auf die Diensthilfeseite über HTTP festlegt.

Nur Bindungen mit inneren Bindungselementen, die System.ServiceModel.Channels.IReplyChannel unterstützen, werden unterstützt. Darüber hinaus muss die System.ServiceModel.Channels.MessageVersion-Eigenschaft der Bindung MessageVersion.None lauten.
httpHelpPageBindingConfiguration Eine Zeichenfolge mit dem Namen der Bindung, die im httpHelpPageBinding-Attribut angegeben ist, das auf die zusätzlichen Konfigurationsinformationen dieser Bindung verweist. Der gleiche Name muss im Abschnitt <bindings> definiert werden.
httpHelpPageEnabled Ein boolescher Wert, der steuert, ob eine HTML-Hilfeseite an der vom httpHelpPageUrl-Attribut angegebenen Adresse veröffentlicht. Der Standardwert ist true.

Sie können diese Eigenschaft auf false festlegen, um die Veröffentlichung einer in HTML-Browsern angezeigbaren HTML-Hilfeseite zu deaktivieren.

Um sicherzustellen, dass die HTML-Hilfeseite an dem Speicherort veröffentlicht wird, der vom httpHelpPageUrl-Attribut gesteuert wird, müssen Sie dieses Attribut auf true festlegen. Außerdem muss eine der folgenden Bedingungen erfüllt werden:

Das httpHelpPageUrl-Attribut ist eine absolute Adresse, die das HTTP-Protokollschema unterstützt.
- Es gibt eine Basisadresse für den Dienst, der das HTTP-Protokollschema unterstützt.

Obwohl eine Ausnahme ausgegeben wird, wenn eine absolute Adresse, die das HTTP-Protokollschema nicht unterstützt, dem httpHelpPageUrl-Attribut zugewiesen wird, werden bei allen anderen Szenarien, die den vorstehenden Kriterien nicht entsprechen, keine Ausnahmen und HTML-Hilfeseiten ausgegeben.
httpHelpPageUrl Ein URI, der die relative oder absolute HTTP-basierte URL der benutzerdefinierten HTML-Hilfedatei angibt, die dem Benutzer angezeigt wird, wenn der Endpunkt mithilfe eines HTML-Browsers angezeigt wird.

Sie können dieses Attribut verwenden, um die Verwendung einer benutzerdefinierten HTML-Hilfedatei zu ermöglichen, die von einer HTTP/Get-Anfrage zurückgegeben wird, beispielsweise von einem HTML-Browser. Der Speicherort der HTML-Hilfedatei wird wie folgt aufgelöst.

1. Wenn der Wert dieses Attributs eine relative Adresse ist, entspricht der Speicherort der HTML-Hilfedatei dem Wert der Dienstbasisadresse, die HTTP-Anforderungen unterstützt, plus dieses Eigenschaftswerts.
2. Wenn der Wert dieses Attributs eine absolute Adresse ist und HTTP-Anforderungen unterstützt, entspricht der Speicherort der HTML-Hilfedatei dem Wert dieser Eigenschaft.
3. Wenn der Wert dieses Attributs eine absolute Adresse ist, aber keine HTTP-Anforderungen unterstützt, wird eine Ausnahme ausgegeben.

Das Attribut ist nur gültig, wenn das httpHelpPageEnabled-Attribut true ist.
httpsHelpPageBinding Ein Zeichenfolgenwert, der den Typ der zu verwendenden Bindung beim Zugriff auf die Diensthilfeseite über HTTPS festlegt.

Nur Bindungen mit inneren Bindungselementen, die IReplyChannel unterstützen, werden unterstützt. Darüber hinaus muss die System.ServiceModel.Channels.MessageVersion-Eigenschaft der Bindung MessageVersion.None lauten.
httpsHelpPageBindingConfiguration Eine Zeichenfolge mit dem Namen der Bindung, die im httpsHelpPageBinding-Attribut angegeben ist, das auf die zusätzlichen Konfigurationsinformationen dieser Bindung verweist. Der gleiche Name muss im Abschnitt <bindings> definiert werden.
httpsHelpPageEnabled Ein boolescher Wert, der steuert, ob eine HTML-Hilfeseite an der vom httpsHelpPageUrl-Attribut angegebenen Adresse veröffentlicht. Der Standardwert ist true.

Sie können diese Eigenschaft auf false festlegen, um die Veröffentlichung einer in HTML-Browsern angezeigbaren HTML-Hilfeseite zu deaktivieren.

Um sicherzustellen, dass die HTML-Hilfeseite an dem Speicherort veröffentlicht wird, der vom httpsHelpPageUrl-Attribut gesteuert wird, müssen Sie dieses Attribut auf true festlegen. Außerdem muss eine der folgenden Bedingungen erfüllt werden:

- Das httpsHelpPageUrl-Attribut ist eine absolute Adresse, die das HTTPS-Protokollschema unterstützt.
- Es gibt eine Basisadresse für den Dienst, der das HTTPS-Protokollschema unterstützt.

Obwohl eine Ausnahme ausgegeben wird, wenn eine absolute Adresse, die das HTTPS-Protokollschema nicht unterstützt, dem httpsHelpPageUrl-Attribut zugewiesen wird, werden bei allen anderen Szenarien, die den vorstehenden Kriterien nicht entsprechen, keine Ausnahmen und HTML-Hilfeseiten ausgegeben.
httpsHelpPageUrl Ein URI, der die relative oder absolute HTTPS-basierte URL der benutzerdefinierten HTML-Hilfedatei angibt, die dem Benutzer angezeigt wird, wenn der Endpunkt mithilfe eines HTML-Browsers angezeigt wird.

Sie können dieses Attribut verwenden, um die Verwendung einer benutzerdefinierten HTML-Hilfedatei zu ermöglichen, die von einer HTTPS/Get-Anfrage zurückgegeben wird, beispielsweise von einem HTML-Browser. Der Speicherort der HTML-Hilfedatei wird wie folgt aufgelöst:

- Wenn der Wert dieser Eigenschaft eine relative Adresse ist, entspricht der Speicherort der HTML-Hilfedatei dem Wert der Dienstbasisadresse, die HTTPS-Anfragen unterstützt, plus dieses Eigenschaftswerts.
- Wenn der Wert dieser Eigenschaft eine absolute Adresse ist und HTTPS-Anforderungen unterstützt, entspricht der Speicherort der HTML-Hilfedatei dem Wert dieser Eigenschaft.
- Wenn der Wert dieser Eigenschaft eine absolute Adresse ist, aber keine HTTPS-Anforderungen unterstützt, wird eine Ausnahme ausgegeben.

Das Attribut ist nur gültig, wenn das httpHelpPageEnabled-Attribut true ist.
includeExceptionDetailInFaults Ein Wert, der angibt, ob verwaltete Ausnahmeinformationen in den Details der SOAP-Fehler zu Debuggingzwecken an den Client zurückgegeben werden. Der Standardwert lautet false.

Wenn Sie dieses Attribut auf true festlegen, können Sie die Übergabe von verwalteten Ausnahmeinformationen zurück an den Client zu Debuggingzwecken aktivieren und die Veröffentlichung von HTML-Informationsdateien für Benutzer bereitstellen, die den Dienst in Webbrowsern durchsuchen. Vorsicht: Verwaltete Ausnahmeinformationen an Clients zurückzugeben, kann ein Sicherheitsrisiko darstellen. Das liegt darin begründet, dass Ausnahmedetails Informationen zur internen Dienstimplementierung offen legen, die von nicht autorisierten Clients verwendet werden können.

Untergeordnete Elemente

Keine

Übergeordnete Elemente

Element BESCHREIBUNG
<behavior> Gibt ein Verhaltenselement an.

Bemerkungen

Durch das Festlegen vonincludeExceptionDetailInFaults auf true kann der Dienst Ausnahmen zurückgeben, die von der Anwendung ausgelöst werden, auch wenn die Ausnahmen nicht mit FaultContractAttribute deklariert sind. Diese Einstellung ist in Debuggingfällen hilfreich, in denen der Server eine unerwartete Ausnahme ausgibt. Durch Verwenden dieses Attributs wird ein serialisiertes Format der unbekannten Ausnahme zurückgegeben, und Sie können mehr Details zur Ausnahme überprüfen.

Achtung

Verwaltete Ausnahmeinformationen an Clients zurückzugeben kann ein Sicherheitsrisiko darstellen, da Ausnahmedetails Informationen zur internen Dienstimplementierung verfügbar machen, die von nicht autorisierten Clients verwendet werden könnten. Wegen der damit verbundenen Sicherheitsprobleme wird dringend empfohlen, dass Sie diesen Vorgang nur in gesteuerten Debugszenarien ausführen. Beim Bereitstellen der Anwendung sollten Sie includeExceptionDetailInFaults auf false festlegen.

Ausführliche Informationen zu den Sicherheitsproblemen im Zusammenhang mit verwalteten Ausnahmen finden Sie unter Angeben und Behandeln von Fehlern in Verträgen und Diensten. Ein Codebeispiel finden Sie unter Service Debug Behavior.

Sie können auch httpsHelpPageEnabled und httpsHelpPageUrl festlegen, um die Hilfeseite zu aktivieren oder zu deaktivieren. Jeder Dienst kann optional eine Hilfeseite verfügbar machen, die Informationen zum Dienst enthält, einschließlich des Endpunkts, um WSDL für den Dienst abzurufen. Dies kann durch Festlegen von httpHelpPageEnabled auf true aktiviert werden. Dadurch kann die Hilfeseite an eine GET-Anforderung der Basisadresse des Diensts zurückgegeben werden. Durch Festlegen des httpHelpPageUrl-Attributs können Sie diese Adresse ändern. Sie können dies außerdem sichern, indem Sie HTTPS statt HTTP verwenden.

Mithilfe des optionalen httpHelpPageBinding-Attributs und httpHelpPageBinding-Attributs können Sie die für den Zugriff auf die Diensthilfeseite verwendeten Bindungen konfigurieren. Wenn sie nicht festgelegt sind, werden die Standardbindungen (HttpTransportBindingElement für HTTP und HttpsTransportBindingElement für HTTPS) entsprechend für den Zugriff auf die Diensthilfeseite verwendet. Beachten Sie, dass Sie diese Attribute nicht mit den integrierten WCF-Bindungen verwenden können. Nur Bindungen mit inneren Bindungselementen, die T:System.ServiceModel.Channels.IReplyChannel> unterstützen, werden unterstützt. Darüber hinaus muss die System.ServiceModel.Channels.MessageVersion-Eigenschaft der Bindung MessageVersion.None lauten.

Siehe auch