1

我有 WCF 服务,我的客户端是 Silverlight 应用程序。当服务出现故障(网络错误等)时,我在客户端代理上收到此异常:

CommunicationException:通信对象 System.ServiceModel.Channels.ClientFramingDuplexSessionChannel 无法用于通信,因为它处于故障状态。

准确地说,在下面代码的第 5 行:

public System.IAsyncResult BeginPublishVideo(byte[] data, System.AsyncCallback callback, object asyncState) {
                object[] _args = new object[1];
                _args[0] = data;
                //Below is when the exception is received
                System.IAsyncResult _result = base.BeginInvoke("PublishVideo", _args, callback, asyncState);
                return _result;
            }

因此,我尝试将服务调用(来自堆栈跟踪)包装在 try/catch 中,但无济于事,try/catch 永远不会被执行。基本上是这样的:

        try
        {
            _videoClient.PublishVideoAsync(codedVideoBuffer);
        }
        catch (Exception) { }

但是 try catch 永远不会被击中。我怎样才能捕捉到这个异常并优雅地处理它?

TIA。

4

0 回答 0