XmlSerializer-FehlerXmlSerializer Faults

Im XmlSerializer-Fehlervertragsbeispiel wird veranschaulicht, wie Fehlerinformationen von einem Dienst zu einem Client mit XmlSerializer übermittelt werden.The XmlSerializer fault contract sample demonstrates how to communicate error information from a service to a client using the XmlSerializer. Das Beispiel basiert auf der Einstieg, mit zusätzlicher Code hinzugefügt, mit dem Dienst um eine interne Ausnahme in einen Fehler zu konvertieren.The sample is based on the Getting Started, with some additional code added to the service to convert an internal exception to a fault. Der Client versucht, eine Division durch 0 (null) auszuführen, um einen Fehlerzustand beim Dienst zu erzwingen.The client attempts to perform division by zero to force an error condition on the service.

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.

Der Rechnervertrag wurde geändert, um ein FaultContractAttribute einzuschließen, wie im folgenden Beispielcode gezeigt.The calculator contract has been modified to include a FaultContractAttribute as shown in the following sample code. Darüber hinaus wird das XmlSerializerFormatAttribute verwendet, um die Serialisierung mit XmlSerializer zu aktivieren.Also, the XmlSerializerFormatAttribute is used to enable serialization using the XmlSerializer. Die SupportFaults-Eigenschaft wird für dieses Attribut auf true festgelegt, wodurch das Serialisierungsprogramm angewiesen wird, XmlSerializer zum Schreiben und Lesen von Fehlern zu verwenden.The SupportFaults property is set to true on this attribute, which instructs the serializer to use the XmlSerializer for reading and writing faults.

[XmlSerializerFormat(SupportFaults=true)]  
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]  
public interface ICalculator  
{  
    [OperationContract]  
    int Add(int n1, int n2);  

    [OperationContract]  
    int Subtract(int n1, int n2);  

    [OperationContract]  
    int Multiply(int n1, int n2);  

    [OperationContract]  
    [FaultContract(typeof(MathFault))]  
    int Divide(int n1, int n2);  
}  

Beim Generieren von Code für den Clientproxy muss, gelten die /UseSerializerForFaults flag ServiceModel Metadata Utility Tool (Svcutil.exe).When generating code for the client proxy, you must apply the /UseSerializerForFaults flag to ServiceModel Metadata Utility Tool (Svcutil.exe).

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, fahren Sie mit Windows Communication Foundation (WCF) und Windows Workflow Foundation (WF) Samples for .NET Framework 4 aller Windows Communication Foundation (WCF) herunterladen und WFWF Beispiele.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) and WFWF samples. Dieses Beispiel befindet sich im folgenden Verzeichnis.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Contract\Service\XmlSerializerFaults

Siehe auchSee Also

XmlSerializerFormatAttribute
SupportFaults