我们有一个现有的WCF客户端,它从WCF服务接收数据。我们在客户端实现了一个特定的业务逻辑,只有在从WCF调用中找到EndpointNotFoundException时才会执行。最近我们收到了一个非常具体的要求,其中需要针对某些特殊业务场景执行相同的逻辑。但是,由于业务限制,我们没有灵活性来修改客户端的代码。因此,我们开始考虑如果可以从服务中提升强制EndpointNotFoundException,以便在从服务接收到EndpointNotFoundException时可以在客户端中执行相同的代码。问题是,即使我们从服务中提出EndpointNotFoundException,WCF服务也总是发送一个错误契约异常。我的问题是,有没有办法从服务中提出EndpointNotFoundException,以便客户端可以收到完全相同的错误而不是任何错误异常。
您的意见将受到高度赞赏。从业务角度来看,这非常关键。
答案 0 :(得分:0)
我明白了,如果我将请求的状态代码设置为404 not found,最终在客户端将它抛出为EndpointNotFoundException异常。如果请求已成功处理。
WebOperationContext ctx = WebOperationContext.Current;
ctx.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.NotFound;