gpt4 book ai didi

wcf - 如何在发送形状之前保留 BizTalk 业务流程 - 用于重新发送

转载 作者:行者123 更新时间:2023-12-03 23:43:06 25 4
gpt4 key购买 nike

我有一个调用 WCF 服务的编排,它是一个双向请求/响应发送端口。像这样:

Orchestration

我一直在尝试找出一种方法让编排在发送形状之前保持状态。这是希望当出现异常或端点关闭时,我可以恢复编排并让它尝试重新发送到端点。

我曾尝试将发送/接收形状包裹在各种范围形状中,以使其保持在发送形状之上,但无济于事。我上下阅读了 Seroter 的博客,并尝试了他帖子中建议的所有内容:

http://seroter.wordpress.com/2007/01/02/orchestration-handling-of-suspended-messages/

例如,如果我取下端点并发送给它,我会得到一个

System.ServiceModel.ServiceActivationException: The requested service, 'https://my-service.svc' could not be activated. The service instance will remain suspended until administratively resumed or terminated. If resumed the instance will continue from its last persisted state and may re-throw the same unexpected exception.

这是意料之中的。正如它所说,该实例在恢复时可能会重新抛出相同的异常(无论我尝试了什么,它都会这样做)。

我尝试过的事情:

  • 将 Send 形状包装在原子范围内,但在抛出异常后它仍然会被挂起。
  • 在原子范围内包装发送和接收形状,但在编译时出现错误:

    Error 1 an atomic scope may not contain or call a service or scope that contains both the send and the corresponding receive of a requestresponse operation on a 'uses' port or servicelink

  • 尝试将 Send 和 Receive 形状包装在长时间运行范围内并捕获异常,然后使用暂停形状 - 但这只会导致脱水实例等待 WCF 服务的响应。

我不确定还有什么可以尝试的。基本上我要问的是,如何让编排在包含的图像中看到的“conWrapper”(或 sendRCMR 上方的任何位置...)形状持续存在?

最佳答案

对于您所描述的内容,您实际上并不需要强制执行编排持久性。

如果端点关闭,或者适配器抛出任何其他错误,消息实例将首先进入重试模式,然后挂起。这可能是您包含的错误消息所指的“实例”。

一旦端点再次运行,您将恢复 Messaging 实例。

这是最常见的情况。

关于wcf - 如何在发送形状之前保留 BizTalk 业务流程 - 用于重新发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749838/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com