奇怪的是,我在谷歌上找不到任何东西。在做常规异常的事情时,你会创建一个MyCustomException : Exception
,我假设同样适用于 ExceptionFaults。
当有人使用无效的 api 密钥调用我的服务时,我想抛出 InvalidApiKeyExceptionFault。我似乎无法在网上找到如何设置它并让客户端能够捕获它的示例(可能是某个属性将其包含到 WSDL 中)。
有什么建议去哪里看,还是我在尝试一些不可能的事情?
奇怪的是,我在谷歌上找不到任何东西。在做常规异常的事情时,你会创建一个MyCustomException : Exception
,我假设同样适用于 ExceptionFaults。
当有人使用无效的 api 密钥调用我的服务时,我想抛出 InvalidApiKeyExceptionFault。我似乎无法在网上找到如何设置它并让客户端能够捕获它的示例(可能是某个属性将其包含到 WSDL 中)。
有什么建议去哪里看,还是我在尝试一些不可能的事情?
您应该使用FaultException<TDetail>
并将您的特定信息放入可序列化TDetail
类型中。
您的服务合同应该有一个指定类型的故障合同。TDetail
此技术使您能够以可互操作的方式传达错误信息,包括与对 .NET 异常一无所知的客户端。
如果由于某种原因您不想使用故障合同,您可以考虑使用非通用FaultException,并在故障原因和/或故障代码/子代码中传达有关错误的其他信息。