【问题标题】:How can I send fault on a duplex channel?如何在双工通道上发送故障?
【发布时间】:2009-12-02 06:51:03
【问题描述】:

客户端和服务器以双工模式进行通信。 客户端有一个通用服务 (Action="*") 作为合约回调。

我希望服务器能够向我的客户端发送故障。

我该怎么办?

【问题讨论】:

    标签: wcf duplex fault


    【解决方案1】:

    如何将你的 Action 设置为类似

    Action = NotificationData.NotificationAction
    

    NotificationData 是具有 MessageId 属性的 MessageContract 类

    [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 --> 来自服务器的错误

    【讨论】:

    • 其实我的设计有点特别。服务是双工的,但客户端是请求/回复,并且有一个路由器在双工呼叫中转换请求/回复呼叫,反之亦然。所以我的客户必须能够使用 try{}catch(FaultException){}
    • 嗯...听起来很有趣...如果您想出解决方案,请告诉我们!
    猜你喜欢
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多