【问题标题】:C# Async Await In WCF 4.5 and Exception handlingWCF 4.5 中的 C# 异步等待和异常处理
【发布时间】:2013-07-15 14:12:16
【问题描述】:

在 WCF .net 3.5 中,我使用 IAsyncResult Begin/End 操作模式的异步方式。
当我遇到异常时,我会返回一个名为 ErrorData 的 DataContract。
另外,我可以使用 FaultContract。

在 .net 4.5 的 WCF 中,如何处理异常?
我看到了这个指南:Wcf service exception good practices

这与 .net 4.5 有关吗?如果我的 WCF 服务捕获到异常,我会返回 FaultContract 吗?
我找不到该主题的良好参考资料。

【问题讨论】:

    标签: wcf task-parallel-library .net-4.5 async-await


    【解决方案1】:

    您仍然需要发送FaultContract。我有一个关于 my blog post "Async WCF Today and Tomorrow" 的示例 - 请注意,在撰写该博客时,“今天”意味着使用 Async CTP 并将 async 实现包装在 IAsyncResult 方法中。所以“今天”的方法不再适用。 “明天”部分展示了如何在 .NET 4.5 中使用 async

    【讨论】:

    • 您是否在任何地方提到过如何从代理/服务的 WCF 故障状态中恢复? (我使用 Channel 和 ChannelFactory.CreateChannel)
    • 普通的FaultException 是服务的例外,不需要恢复。如果您有实际的 WCF(例如通信)故障,我相信您必须重新创建通道。我自己只有代理经验。
    • 是的,在托管应用程序中,服务端未处理的异常会导致通道出现故障。同样在客户端,如果通道打开时间过长或其他原因,会导致通道出现故障,在 IIS 环境中,IIS 将恢复,在托管应用程序上我没有找到好的恢复模式/实践。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    相关资源
    最近更新 更多