2009-12-02 2 views
1

Клиент и сервер обмениваются данными в дуплексном режиме. Клиент имеет универсальную услугу (Action = "*") в качестве обратной связи по контракту.Как я могу отправить ошибку на дуплексном канале?

Я хочу, чтобы сервер мог отправить ошибку моему клиенту.

Как я могу это сделать?

ответ

0

насчет установки ваших действий, чтобы что-то вроде

Action = NotificationData.NotificationAction 

NotificationData класс MessageContract, который имеет свойство MessageId

[MessageContract] 
public class NotificationData 
{ 
    public const string NotificationAction = "http://gfader.com/copied-from/tomasz.janczuk.org"; 

    [MessageBodyMember] 
    public string Message { get; set; } 

    [MessageBodyMember] 
    public DateTime SendTime { get; set; } 

    [MessageBodyMember] 
    public MessageIds MessageId { get; set; } 
} 

код на клиенте:
если MessageId == 500 -> ошибка с сервера

+0

На самом деле, мой дизайн немного особенный. Сервисы являются дуплексными, но клиентами являются Request/Reply, и есть маршрутизатор, который переводит запрос/ответ на вызов в дуплексном вызове и наоборот. Таким образом, мой клиент должен иметь возможность использовать try {} catch (FaultException ) {} –

+0

huh ... звучит интересно ... сообщите нам, когда вы придумали решение на этом! –