Возврат WCF Custom Fault Exception - PullRequest
7 голосов
/ 24 мая 2011

У меня возникли проблемы с возвратом пользовательского исключения ошибки из службы wcf.Клиентское приложение, обращающееся к службе wcf, получает ошибку несоответствия контракта.Вот мой контракт ошибки, определенный в сервисе:

public partial class Fault
{
    string codeField;
    string messageField;
    string detailsField;
}

При ошибке в сервисе я создаю пользовательское исключение ошибки следующим образом:

public void ProvideFault(Exception exception, MessageVersion version, ref Message       refMessage)
{
      mynamespace.Fault customFault = new mynamespace.Fault()
      {
           code = "Service Error",
           message = "Error Message",
           details = "Error Message"
      };

      FaultException<mynamespace.Fault> faultexception = new   FaultException<mynamespace.Fault>( customFault );

      MessageFault messageFault = faultexception.CreateMessageFault();

      refMessage = Message.CreateMessage( version, messageFault, faultNamespace );
}

Этот код вызывает ошибку несоответствия контракта в клиенте,Может кто-нибудь, пожалуйста, помогите мне найти, что не так?

Ответы [ 4 ]

3 голосов
/ 24 мая 2011

Шаги для создания пользовательского договора о неисправности

http://bloggingabout.net/blogs/jpsmit/archive/2007/03/21/wcf-fault-contracts.aspx

3 голосов
/ 24 мая 2011

Укажите, какой тип ошибки вам нужно вернуть (например, создайте класс UserMismatchFault), а затем сгенерируйте его следующим образом:

throw new FaultException<UserMismatchFault>(myFault);
2 голосов
/ 22 ноября 2011

Надеюсь, этот пример в Code Project может помочь вам

2 голосов
/ 24 мая 2011

Что такое faultNamespace?Третий параметр CreateMessage должен быть действием (faultException.Action).Также не забывайте, что ваш класс Fault должен быть действительным DataContract - в случае членов сериализации по умолчанию должно быть public.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...