【发布时间】:2012-01-18 19:39:30
【问题描述】:
我有一个在 C# .net 控制台应用程序中使用来自 WSDL + XSD 的 SVCUTIL 生成的客户端。一切都很好,但出于某些逻辑错误处理的目的,客户端可能会收到一条响应消息,该消息未在 WSDL 中定义,因此反序列化 & 将失败,但方法不会抛出异常而是返回 null。
是否有任何通用的方法来处理这种情况,或者我定义了一个故障/错误消息 xsd(对于服务器返回的肥皂消息),如果响应为空,则处理/反序列化消息。
PS:我的远程服务无法为逻辑错误抛出错误异常。(是的,那里有点阻塞)。
【问题讨论】:
-
如果您的服务返回的消息不在 WSDL 中,则说明该消息已损坏。那怎么不“坏”呢?
-
嗨,约翰,感谢您的回复。它没有损坏,我调用该方法并得到空响应,没有例外,我使用 fiddler 并查看返回的是另一条消息,不能通过消息合约反序列化。我们必须从服务返回另一条消息,因为由于逻辑错误(限制),我们不能抛出一个肥皂错误。
-
这没有意义。可以从服务返回的所有内容必须在 WSDL 中定义。
-
hmmm 好点,你知道我是这里的新手,我会尝试重新生成 WSDL,然后我可能会看到一些错误消息,但如果我只是在方法的响应中输入错误消息怎么办。严格来说,我的 WCF 服务是在不同的内部工具中定义的,所以我很难解释这部分。首先我尝试重新生成 WSDL,我会回来的。再次感谢约翰的回复。我很感激。
标签: c# wcf soap wsdl soap-client