Вызов FaultException из служб WCF приводит к тому, что «Создатель этой ошибки не указал причину».

При выдаче FaultException следующим образом:

throw new FaultException(new CustomFault("Custom fault message"));

я получаю следующее: "Создатель этой ошибки не указать причину." Теперь, согласно этой статье MSDN, не требуется использовать FaultReason

. У меня есть следующий контракт на обслуживание:

[OperationContract]
[FaultContract(typeof(CustomFault))]
CustomType[] SomeMethod(int someParameter);

[DataContract]
public class CustomFault
{
    private string report;

    public CustomFault(string message)
    {
        this.report = message;
    }

    [DataMember]
    public string Message
    {
        get { return this.report; }
        set { this.report = value; }
    }
}

В статье MSDN есть комментарий, в котором говорится, что это обязательно использовать другую FaultReason, но в нескольких других местах я видел людей, утверждающих, что вы не должны использовать FaultReason без необходимости.

Итак, мой вопрос заключается в следующем; действительно ли обязательно использовать FaultReason, а если нет, то как я могу предотвратить возникновение исключения при попытке создать FaultException?

РЕДАКТИРОВАТЬ

Запустив пример проекта из этой статьи, я получаю точно такое же поведение. Возможно, это вызвано обновлением в .NET, а документация/образцы не обновляются.

8
задан Nicklas Møller Jepsen 8 March 2012 в 09:40
поделиться