Debugverhalten von DienstenService Debug Behavior

In diesem Beispiel wird veranschaulicht, wie die Einstellungen für das Debugverhalten von Diensten konfiguriert werden können.This sample demonstrates how service debug behavior settings can be configured. Das Beispiel basiert auf der Einstieg, implementiert die ICalculator Dienstvertrag.The sample is based on the Getting Started, which implements the ICalculator service contract. Dieses Beispiel definiert das Debugverhalten von Diensten explizit in der Konfigurationsdatei.This sample explicitly defines service debug behavior in the configuration file. Das Debugverhalten kann auch zwingend im Code definiert werden.It can also be done imperatively in code.

In diesem Beispiel ist der Client eine Konsolenanwendung (.exe), und der Dienst wird von IIS (Internet Information Services, Internetinformationsdienste) gehostet.In this sample, the client is a console application (.exe) and the service is hosted by Internet Information Services (IIS).

Hinweis

Die Setupprozedur und die Buildanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.The setup procedure and build instructions for this sample are located at the end of this topic.

Die Datei Web.config für den Server definiert das Debugverhalten des Diensts, um die Hilfeseiten und die Behandlung von Ausnahmen zu aktivieren, wie im folgenden Beispiel dargestellt.The Web.config file for the server defines the service debug behavior to enable the help page and exception handling as shown in the following sample.

<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 > ist das Konfigurationselement, das Ändern der Debug-dienstverhaltenseigenschaften ermöglicht.<serviceDebug> is the configuration element that allows changing the service debug behavior properties. Der Benutzer kann dieses Verhalten ändern, um Folgendes zu erreichen:The user can modify this behavior to achieve the following:

  • Dadurch kann der Dienst Ausnahmen zurückgeben, die von der Anwendung ausgelöst werden, auch wenn die Ausnahmen nicht mit FaultContractAttribute deklariert sind.This allows the service to return any exception that is thrown by the application code even if the exception is not declared using the FaultContractAttribute. includeExceptionDetailInFaults wird dazu auf true festgelegt.It is done by setting includeExceptionDetailInFaults to true. Diese Einstellung ist in Debuggingfällen hilfreich, in denen der Server eine unerwartete Ausnahme ausgibt.This setting is useful when debugging cases where the server is throwing an unexpected exception.

    Wichtig

    Es ist nicht sicher, diese Einstellung in einer Produktionsumgebung zu aktivieren.It is not secure to turn this setting on in a production environment. Eine unerwartete Ausnahme des Servers besitzt möglicherweise Informationen, die nicht für den Client bestimmt sind. Wenn includeExceptionDetailsInFaults auf true festgelegt ist, kann es möglicherweise zu Informationsverlusten kommen.An unexpected server exception may have some information that is not intended for the client and so setting includeExceptionDetailsInFaults to true might result in an information leak.

  • Die <ServiceDebug > können auch einen Benutzer aktivieren oder deaktivieren die Seite "Hilfe".The <serviceDebug> also allows a user to enable or disable the help page. 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.Each service can optionally expose a help page that contains information about the service including the endpoint to get WSDL for the service. Dies kann durch Festlegen von httpHelpPageEnabled auf true aktiviert werden.This can be enabled by setting httpHelpPageEnabled to true. Dadurch kann die Hilfeseite an eine GET-Anforderung der Basisadresse des Diensts zurückgegeben werden.This enables the help page to be returned to a GET request to the base address of the service. Durch Festlegen des Attributs httpHelpPageUrl können Sie diese Adresse ändern.You can change this address by setting another attribute httpHelpPageUrl. Sie können dies sichern, indem Sie HTTPS statt HTTP verwenden.You can make this secure by using HTTPS instead of HTTP. Legen Sie dazu httpsHelpPageEnabled auf httpsHelpPageUrl fest.This can be done by setting httpsHelpPageEnabled and httpsHelpPageUrl.

Wenn Sie das Beispiel ausführen, werden die Anforderungen und Antworten für den Vorgang im Clientkonsolenfenster angezeigt.When you run the sample, the operation requests and responses are displayed in the client console window. Die ersten drei Vorgänge (Add, Subtract und Multiply) müssen erfolgreich sein.The first three operations (Add, Subtract and Multiply) must succeed. Der letzte Vorgang ("divide") schlägt mit einer Ausnahme, der Division durch 0 (null), fehl.The last operation ("divide") fails with a division by zero exception.

So können Sie das Beispiel einrichten, erstellen und ausführenTo set up, build, and run the sample

  1. Stellen Sie sicher, dass Sie ausgeführt haben die Setupprozedur für die Windows Communication Foundation-Beispiele zum einmaligen.Ensure that you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. Um die C#- oder Visual Basic .NET-Edition der Projektmappe zu erstellen, befolgen Sie die unter Building the Windows Communication Foundation Samplesaufgeführten Anweisungen.To build the C# or Visual Basic .NET edition of the solution, follow the instructions in Building the Windows Communication Foundation Samples.

  3. Um das Beispiel in einer einzelnen oder computerübergreifenden Konfiguration ausführen möchten, folgen Sie den Anweisungen Ausführen der Windows Communication Foundation-Beispiele.To run the sample in a single- or cross-machine configuration, follow the instructions in Running the Windows Communication Foundation Samples.

Wichtig

Die Beispiele sind möglicherweise bereits auf dem Computer installiert.The samples may already be installed on your machine. Suchen Sie nach dem folgenden Verzeichnis (Standardverzeichnis), bevor Sie fortfahren.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Wenn dieses Verzeichnis nicht vorhanden ist, rufen Sie Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 auf, um alle Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) - und WFWF -Beispiele herunterzuladen.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF)Windows Communication Foundation (WCF) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Services\Behaviors\ServiceDebug

Siehe auchSee Also