WCF 服务故障协定理解
本文关键字:定理 故障 服务 WCF | 更新日期: 2023-09-27 18:36:45
我有一个WCF服务,我有一个FaultContract。我在错误合同中有一个原因,所以我有这样的东西。
FltInfo.Reason = "This is a test";
throw new FaultException<FaultInfo>(FltInfo, new FaultReason(FltInfo.Reason));
显然,您会看到我为数据协定定义了 FaultInfo 类。但是,如果我想获得故障代码、详细信息或级别(关键性类型)方面,我需要做什么或该怎么做?
如果我没有包括其中一些,我仍然会收到肥皂错误消息吗?
另外,从 TRY-CATCH(或您有什么)触发故障异常不会终止发送/接收方面的通信吗?这意味着如果我有 1 条消息通过接收,并且该 1 条消息有一个列表,比如说 100 个项目(例如数组),如果我通过 100 个数组进行处理并且我得到让我们说第 30 个项目但它触发了错误。我不会因为从未完成响应而只是错误而失去所有内容(全部 100 个)吗?
谢谢
您可以使用错误异常的各种构造函数添加错误代码。是的,如果将它们留空,您将获得 WCF 默认值。此外,如果您在处理列表中的单个项目时抛出错误异常,您将脱离正常路径,只返回您的错误。
您可以通过在部分故障中包含响应类型以及如何将单个部分标记为无效来修改此内容。或者,你的服务可以有一个包装器响应类型,该类型允许你将返回的数据的特定部分标记为无效,因为它会在解决方案中这样做。