【发布时间】:2013-05-21 13:07:54
【问题描述】:
我有一个 .net 4.5 客户端,其中包含对远程 Windows WCF 服务的标准服务引用。
有时,当服务器出现严重错误时,它实际上会返回 HTML,而不是我的服务客户端期望的强类型响应。服务器将完全违反我们的软件所遵循的接口/合同。
服务器不会抛出 FaultException。我没有收到 CommunicationException 或其他任何“正常”的东西。对于频道中可能发生的一些异常情况,我有 catch{} 块,但我无法确定如何明确处理获取 HTML 字符串而不是有效位的问题。
谁能告诉我如何巧妙地明确捕获这种服务器活动?这种情况很少见,但发生的足够多,它破坏了我的 WCF 客户端行为
谢谢。
【问题讨论】:
-
当您说“服务器会抛出 FaultException 或其他任何“正常”的东西时,它会发送一串标记。”您的意思是服务器没有发送 FaultException 对吗?否则我猜问这个问题是没有意义的。
-
远程服务器不发送 FaultException。在我的代理客户端反序列化来自服务器的消息之前,我的客户端没有收到实际的“错误”,然后事情就变糟了,因为该消息是人类可读的 HTML 标记“发生了错误。请稍后再试”。
-
如果响应与您的服务合同不匹配,您一定会遇到反序列化异常。那为什么就抓不住处理呢?
-
我在记录的数据中没有看到反序列化异常。我会仔细检查。谢谢。
标签: wcf web-services faultexception