阅读内容 

揪出WF内引发的异常

[日期:2008-08-19] 来源:  作者: [字体: ]
     当开始工作流时,发现某一工作流实例没能按照画定的流程图正常运行,而是运行到一半时自动关闭.
  
  由于初学WF,没太多经验,看了好几篇高手介绍WF异常处理的文章,
  
  照葫芦画葫芦得加上了FaultHandlerActivity,ThrowActivity 等,但就是怎么弄也找不到出错的这个Exception,超级郁闷,还是第一次找个Exception找了那么久都找不到的.
  
  
  
  后来看到一文介绍:
  
  
  
  如果异常没有被处理并且传播到工作流之外,那么WF Runtime将捕获它,接着终止工作流并抛出WorkflowTerminated事件.Runtime会在WorkflowTerminated事件的参数中包含异常的信息.
  
  
  
  终于帮到了大忙,这样应该可以找到了吧,在定义RUNTIME那里加上:
  
  
  
  workflowRuntime.WorkflowTerminated += new EventHandler<WorkflowTerminatedEventArgs>(workflowRuntime_WorkflowTerminated);
  
  static void workflowRuntime_WorkflowTerminated(object sender, WorkflowTerminatedEventArgs e)
  {
   Console.WriteLine("workflow实例已终止,原因:'{0}'。",e.Exception.Message);
  }
  
  
  
  马上运行,终于找到这个Exception了,而出错的原因是因为我用了实现[DataContract]的类型,但赋给它的变量没加序列化的标签而引起的,超级郁闷,马上加上,运行工作流,整个流程顺利跑完!!!!
  
  
  
  哎,如果早点发现就好了,搞了2天去查这个错误到底是什么错,真是超级郁闷.
  
  或许是学习WF还不够深入的原因吧.
  
  
  
  把这次的教训经验写一下,希望能给别人也有所帮助.不用像我那样花2天去找这个BUG.
    
阅读:
录入:blue1000

推荐 】 【 打印
相关新闻      
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:
Advertisement
内容查询


Advertisement