windows workflow foundation (wf) 阶段总结

终于可以记录第一个总结了,因为这第一个 web 上的 wf3 小应用看来终于稳定。

 

回想一下,这过程可以说最近两年学习新技术时遇到的最大挫折。近一个月的时间里停在一个地方,一步也不能前进。

 

一开始进展顺利,从设计流程,连接业务,开动持久化,都顺利完成,在自己电脑上运行正常。

可一旦放服务器上,问题出现了:运行时不规则发出 abort,并且没有任何错误信息,包括 windows 事件里也不计。

 

然后就是每天搜索资料,也不知道是不是我关键字不对,几乎找不到有用资料,似乎整个 internet 上只有一两个人遇到我的问题,并且没有解决。

 

然后是自己摸索,一开始是设法记录日志,甚至开了跟踪,但不管如何 abort 事件里就是拿不到有用信息。

然后发现实例 abort 导致状态停止不变,但是状态改变后面的业务代码运行没问题,似乎被正常调用,而不是出错的实例调用的(为抓错误在 abort  里输出队列,发现触发事件一直在等待,但结果是触发事件后面的代码明明执行了——误导)

所以怀疑是多线程的问题,有另外一个运行时在运行,并且这个猜测得到支持——application 会回收的。最后确保了 运行时 的唯一——

但是仍然不成;

 

难题长时间卡住不能突破,开始怀疑 wf 是否不成熟一致没人用(资料少),开始想放弃时,无意搜索早就注意到,但是没有因为关注的一个错误:

WorkflowOwnershipException
    Exception message: 此工作流不属于该 WorkflowRuntime。该 WorkflowRuntime 的所有权已失效,或者此工作流属于另一个 WorkflowRuntime。

网上介绍这个错误的文章似乎就一篇。进一步搜索 msdn,发现是 持久化 对象引出这个错误,再进一步发现多半是 锁定 引起。

 

霍然开朗,重新注册持久化服务,不再锁定。把已经存在测试数据的 锁定 字段清空,然后似乎,稳定了。

 

在研究自己记录的日志,发现 abort 总是在 空闲 事件以后出,而 空闲 时就要 持久化,所以,多半是 持久化 出问题了。

 

重新打开这个流程给用户,是否真的是这个原因,还待应用检验。

 

下午在测试几个流程

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值