WCF故障 - 缺少详细信息元素

时间:2011-08-04 22:36:45

标签: wcf fault

我们的解决方案中有一个自定义异常处理行为(实现IErrorHandler),它主要使用Automapper将异常转换为故障。

从第1天开始,这一直运行良好。但是我们在共享开发服务器上浏览ServiceTraceViewer(查看服务器日志 - 而不是客户端)时发现,我们的服务返回的任何错误都会忽略detail元素。

在我的开发机器上运行完全相同的代码和配置,正确填充了detail元素。正如我所说,配置文件(行为,绑定)在两台机器上是相同的。两个配置都指定includeExceptiondetailsInFaults = true。

我还添加了一堆日志语句,似乎表明在两台机器上都遵循相同的代码路径,并且具有相同的值,例如故障代码,故障原因等。

我的开发机器是2008R2标准(64位)。有问题的服务器也是2008R2 Standard(64位)。

如果需要,我可以发布代码的摘录,但首先是否有任何环境可以允许我们看到的内容?

从问题文件中提取:

<s:Body u:Id="_1">
<s:Fault>
<s:Code>
<s:Value>s:Sender</s:Value>
</s:Code>
<s:Reason>
<s:Text xml:lang="en-NZ">An error occured during the request to the ...</s:Text>
</s:Reason>
</s:Fault>
</s:Body>

1 个答案:

答案 0 :(得分:0)

这里不是100%肯定礼仪。这个答案我想我的特定品牌的愚蠢。也许其他人会变得愚蠢,然后答案适用于他们......

我确信我已经比较了所有内容(我说的代码/配置完全相同)。但是行为配置文件我只是给了一个快速的视觉效果。在另一位开发人员找到我之后,我意识到本地文件与服务器文件不同。卫生署!

事实上,服务器文件在后期构建步骤中添加了一个额外的行 - 除了我们已经用于记录等的IErrorHandler行为之外,还触发了实现IErrorHandler的另一个自定义行为。

我想我现在要打开另一个问题,该问题寻求对多个行为实现相同接口而不污染其他功能(如返回故障)的方法的答案。