我们有一个现有的 WCF 客户端,它从 WCF 服务接收数据。我们在客户端实现了一种特定的业务逻辑,只有在从 WCF 调用中发现 EndpointNotFoundException 时才会执行。最近我们收到了一个非常具体的需求,对于一些特殊的业务场景需要执行相同的逻辑。但是,由于业务限制,我们无法灵活地在客户端修改代码。因此,我们开始考虑是否有可能从服务中引发强制 EndpointNotFoundException,以便在从服务接收到 EndpointNotFoundException 时可以在客户端中执行相同的代码。问题是,即使我们从服务中引发 EndpointNotFoundException,WCF 服务也总是发送错误契约异常。我的问题是,有没有办法从服务中引发 EndpointNotFoundException,以便客户端可以收到完全相同的错误,而不是任何故障异常。
我们将不胜感激您的意见。从商业角度来看,这是非常关键的。
最佳答案
我明白了,如果我将请求的状态代码设置为 404 not found,最终在客户端它会抛出 EndpointNotFoundException 异常。如果请求已成功处理。
WebOperationContext ctx = WebOperationContext.Current;
ctx.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.NotFound;
关于c# - 强制从 WCF 服务引发 EndpointNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31935133/