2011-08-04 39 views
0

我们的解决方案中有一个自定义的异常处理行为(实现IErrorHandler),它基本上使用Automapper将异常转换为故障。WCF Fault - 缺少细节元素

自第1天起,这一直运行良好。但是我们刚刚注意到,在我们的共享开发服务器上浏览ServiceTraceViewer(查看服务器日志 - 不是客户端)时,我们的服务返回的任何故障都忽略了detail元素。

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

我还添加了一堆的日志报表似乎表明,同样的代码路径遵循与像故障代码,故障原因等

我的dev的机器各种事物相同的值两台机器是2008R2标准(64位)。有问题的服务器也是2008R2标准版(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> 
+0

只是为了理智,你能否说在*客户*上实际上没有可用的详细信息? –

+0

嘿克里斯蒂安,当然 - 客户端svclog显示相同的东西。现在我们正在监控UAT环境,看看问题是否会出现在那里。如果没有,我猜这是环境问题,仅限于一台机器。 – 6footunder

+0

在这一点上,它仍然是a)真的很奇怪,b)一个大问题! – 6footunder

回答

0

没有100%地肯定礼仪在这里。这是我想我的具体品牌愚蠢的答案。也许别人会是愚蠢的,那么答案适用于他们...

我确信我比较了一切(我说完全相同的代码/配置)。但是我刚刚给出了一个快速的视觉行为配置文件。在另一位开发人员走近我之后,我意识到本地文件与服务器文件不同。卫生署!

其实服务器上的文件已经通过后生成步骤添加一个额外的线 - 触发其实现IErrorHandler除了我们已经使用记录等

的IErrorHandler行为我想我会的另一个自定义行为现在开放另一个问题,寻求对具有实现相同接口的多个行为并且不污染其他功能(如返回故障)的方法的回答。