为什么我的工作流服务(4.0)变量在Dowhile活动中无效?
-
28-09-2019 - |
题
我有一项WF服务,我正在尝试设置,以“订阅”和“取消订阅”活动。我正在使用 这个WF耐用的双工教程 作为基础,因为我的服务对客户进行回调。基本上,将其视为聊天服务。
我可以对两个接收活动进行呼叫,这很好。发生的事情是客户的回调地址传递给服务上的subscribe()。该地址存储在WF服务中,并且一切看起来都可以预期。
当客户端调用unsubscribe()时,调试期间我在地址var上设置的手表显示为 null
. 。那给什么呢?
这是我的WF服务布局的基本设置...
一切都包裹在杂乱无章的活动中。内部是一个选拔活动和两个挑选分支。第一个分支是用于订阅活动。它具有接收屏蔽活动,该活动将客户端传递的字符串分配给WF地址var。第二个分支处理取消订阅。触发器是请求活动,客户地址再次传递。
从那里开始,从if开始。它检查以查看是否 unsubscribeAddress
等于 address
已经订阅。如果是这样,那么它将设置 address
到 String.Empty
并将成功消息发送回客户。
为什么会隐式分配给NULL的范围内的变量?我正在尝试使此功能正常工作,以便我可以从那里实现多个客户端订阅者,并处理触发器,这些触发器将回调回到多个客户端。
Concat编辑: 我设置了一个断点,在Dowhile级别,我的var一次为空 Unsubscribe()
叫做。什么时候 Subscribe()
被调用,手表一直在VAR中显示一个值。直到我 Unsubscribe()
与客户。我应该使用一段时间的活动吗?
解决方案 3
哇,好吧,可怕的东西。我不得不较早地编辑XAMLX文件,当我切换回活动设计师时,我为SendReplyToreceive编辑的引用保存得很有趣。看起来我有两个 Unsubscribe()
不仅如此,而且每个分支的相关处理都在分支之间交叉。
我现在都设置了。为了解决该问题,我删除了所有消息传递活动,掉进了新的消息 ReceiveAndSendReply
活动1分支1的动作块。然后,我将接收活动拖到分支1的触发器上,并像以前一样对其进行配置。我对分支2做了同样的事情,除了我将sendreplytoreceive活动放在我的IF活动下方,该活动验证了匹配地址。
其他提示
没有看到工作流程,我只能做几个猜测,但是我要寻找的东西是:
- 变量范围是序列的序列还是陶式活动中的东西?顺便说一句,没有任何好处将其更改为一段时间的活动,唯一的区别是该条件在开始时或结束时进行了测试。
- 是其他地方使用的变量,并以这种方式清除。尝试重命名它,看看给出了什么。
- 游戏中是否有坚持,并且类型不持久>我认为它是字符串或URI,两者都应该很好。
- 相关性是否存在问题,您的退订消息是否通过不同的工作流程处理?母马确保cancreateinstance设置为错误。
尝试使课堂范围私人{get;设置;}并查看问题是否仍然抬起头来,那就是我能做的最好的事情,而无需看到实际的源代码,因为您所描述的是我看不到任何问题。