Wenn ein FaultException<CustomFault>
wie folgt geworfen wird:
Ich bekomme Folgendes: "Der Urheber dieses Fehlers hat keinen Grund angegeben."
Nach diesem MSDN-Artikel ist es nicht erforderlich, dass FaultReason
Ich habe den folgenden Servicevertrag:
%Vor% Es gibt einen Kommentar zum MSDN-Artikel, der andeutet, dass es zwingend erforderlich ist, das andere FaultReason
zu verwenden, aber an mehreren anderen Orten habe ich Leute gesehen, die argumentieren, dass Sie das FaultReason
nicht verwenden sollten.
Also meine Frage ist wie folgt; Ist es wirklich obligatorisch, FaultReason
zu verwenden und wenn nicht - wie kann ich verhindern, dass die Ausnahme ausgelöst wird, wenn versucht wird, eine FaultException
zu werfen?
BEARBEITEN
Beim Ausführen des Beispielprojekts aus diesem Artikel bekomme ich das gleiche Verhalten. Vielleicht wird es durch ein Update in .NET verursacht und die Dokumentation / Beispiele werden nicht aktualisiert.
Der Fehler Grund ist erforderlich , während die Details optional sind .
WCF verwendet den Wert der FaultException.Reason -Eigenschaft für Füllen Sie das Element <faultstring>
des SOAP-Fehlers aus, der für die SOAP-Spezifikation erforderlich ist :
Fehlerzeichenfolge
Das faultstring Element soll eine menschliche lesbare Erklärung des Fehlers zur Verfügung stellen und ist nicht für algorithmic bestimmt wird bearbeitet. [...] Es MUSS in einem SOAP Fault Element vorhanden sein und SOLLTE mindestens einige Informationen zur Verfügung stellen, die die Art der Fehler.
Daher müssen Sie einen Grund für den Fehler angeben, wenn Sie eine FaultException auslösen von einem WCF-Dienst.
Tags und Links wcf c# error-handling