1

我正在使用 Silverlight 4 并使用用于更新客户端的异步模式实现轮询双工服务。


    // interface for messages back to client
    [OperationContract(IsOneWay = true, AsyncPattern=true)]
    IAsyncResult BeginSendMessage(byte[] MessageData, AsyncCallback callback, object State);

    void EndSendMessage(IAsyncResult result);

我使用我定义的 RequestState 对象向客户端进行回调,以跟踪我发送到哪个连接的客户端。


    AsyncCallback callback = new AsyncCallback(this.MessageSent);
    RequestState state = new RequestState { ConnectionNo = connectionno};
    client.BeginSendMessage(MessageData, callback, state);

我看不到使用回调中返回的 IAsyncResult 参数检查错误的任何方法。

所以我的问题是,如何判断消息是否发送失败?

4

1 回答 1

0

感谢这篇文章中的帮助,我找到了自己问题的答案。有没有办法获得异步 WCF 调用的错误反馈?:)

当回调返回时,我再次使用我在状态对象中传递的 ConnectionNo 在我的连接列表中找到该连接。

然后我打电话


    try
    {
        //This is the method that is defined in my ServiceContract to complete the AsyncPattern
        client.EndSendMessage(asyncresult);
    }
    catch
    {
        //code here to notify the server that there was an error sending the message
    }

于 2010-08-13T16:21:22.553 回答