【发布时间】:2014-01-09 14:40:54
【问题描述】:
我有一个第三方网络服务参考,它有一个网络方法AddDocument。 我们的应用程序之前同步调用了这个方法,但是我现在需要实现对这个方法的异步调用。
我通过选中“生成异步操作”复选框在我的项目中重新配置了 Web 服务引用。 现在我有一个可用的 BeginAddDocument 方法,我称之为:
AsyncCallback callback = ProcessAsyncResult;
object asyncState = "TestAsyncState";
srv.BeginAddDocument(Credentials, document, callback, asyncState);
而且我已经为回调方法准备了一个刺:
public void ProcessAsyncResult(IAsyncResult result)
{
}
有时网络服务会返回错误。 在同步调用方法时可以轻松捕获和处理它们。
但不幸的是,我找不到任何明确的答案如何使用异步方法捕获异常,请记住我无法修改 Web 服务本身。
无论操作结果如何,回调方法中的 IAsyncResult 似乎都是相同的 - 无论是成功还是异常。
是否有可能使用异步方法从 Web 服务中捕获异常,如果可以,最好的方法是什么?
【问题讨论】:
标签: c# wcf asynchronous