首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >WCF ExceptionShielding错误ID与传递给处理程序的handlingInstanceId不匹配

WCF ExceptionShielding错误ID与传递给处理程序的handlingInstanceId不匹配
EN

Stack Overflow用户
提问于 2013-04-10 05:47:19
回答 2查看 2.5K关注 0票数 56

我已经为我的服务做了如下装饰

代码语言:javascript
复制
<ExceptionShielding("MyExceptionPolicyName")>

当抛出错误异常时,我的策略会拾取错误并正常登录。它获取handlingInstance Id并将其与错误一起记录,以供参考。我注意到,错误"Error ID:“中返回的Guid与传递到处理instanceId中的Guid不同。

我也试着像这样来装饰这个操作

代码语言:javascript
复制
<FaultContract(GetType(ValidationFault))>

但这会产生相同的结果。

我想做的是如何捕获传递回消费者的“错误ID:”,这样我就可以将它与异常一起记录下来。*附加信息:异常策略处理程序是一个自定义的处理程序,它接受异常,并将其各种属性和数据记录到特定的异常日志数据库模式中。

有人知道怎么做到这一点吗?

更新:根据@Jay Patel的评论,我将此添加到我的配置中以启用跟踪

代码语言:javascript
复制
<system.diagnostics>
    <sources>
      <source name="System.ServiceModel"
              switchValue="Information, ActivityTracing"
              propagateActivity="true">
        <listeners>
          <add name="traceListener"
              type="System.Diagnostics.XmlWriterTraceListener"
              initializeData= "c:\Temp\Traces.svclog" />
        </listeners>
      </source>
    </sources>
  </system.diagnostics>

然后,我执行了一个请求,以获取由异常屏蔽屏蔽的故障响应。错误响应字符串的格式如下:“使用此服务时出错。有关详细信息,请与您的管理员联系。错误ID:{GUID}”

然后,我查看了跟踪日志,但没有找到GUID或此字符串的证据。

这里是指向跟踪日志的pastebin链接,希望在使用ExceptionShielding时查看跟踪日志示例的任何人都可以使用。

UPDATE2:

再一次,根据@Jay Patel的评论,添加了这个。我尝试为maxMessageLog设置-1和max int值,以确保在该日志中获得最大量的数据。

代码语言:javascript
复制
<diagnostics>
  <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="2147483647" />
</diagnostics>

日志没有任何帮助。它包括,甚至是任何接近回答我的问题的东西。

为了澄清一下,以防上面说得不清楚。我希望能够捕获返回给客户端的消息中"Error ID:“后面的GUID,这样我就可以用异常处理程序记录的异常来记录它。通过这种方式,客户端可以像消息中所说的那样,使用错误ID联系“管理员”,并且实际上能够找到一些东西。

下面是启用了完整跟踪的pastbin

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15913197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档