File BizTalk 2006-将收到的文件复制到新目录

File BizTalk 2006-将收到的文件复制到新目录,file,biztalk,File,Biztalk,我希望能够将以XML形式提供的文件复制到服务器上的新文件夹位置。基本上,我希望在一个新文件夹中保留输入文件的备份 到目前为止,我所做的是尝试跟随论坛帖子上的内容- 起初,我尝试了最后一种方法,但没有做任何事情(读取时重命名文件)。因此,我尝试了其他选项之一,修改了编排,并在接收形状之后放置了一个发送形状。因此,传入的相同消息被发送到逻辑端口。我导出MSI,并在管理控制台中创建了一个发送端口,该端口已设置为指向我的复制位置。它会复制文件,但会继续每秒创建一个。事件查看器还报告警告,说明“文件存在”

我希望能够将以XML形式提供的文件复制到服务器上的新文件夹位置。基本上,我希望在一个新文件夹中保留输入文件的备份

到目前为止,我所做的是尝试跟随论坛帖子上的内容-

起初,我尝试了最后一种方法,但没有做任何事情(读取时重命名文件)。因此,我尝试了其他选项之一,修改了编排,并在接收形状之后放置了一个发送形状。因此,传入的相同消息被发送到逻辑端口。我导出MSI,并在管理控制台中创建了一个发送端口,该端口已设置为指向我的复制位置。它会复制文件,但会继续每秒创建一个。事件查看器还报告警告,说明“文件存在”。我已将端口的复制模式设置为“覆盖”和“新建”,两者均不工作

我看过谷歌,但没有任何帮助-顺便说一句,我支持BizTalk,但我不知道管道、端口是如何工作的。因此,任何帮助都将不胜感激


谢谢你的快速回复

正如David所建议的那样,我希望能够在BizTalk对消息进行任何处理之前,从网络上跟踪消息

我已经尝试使用Ben提供的CodePlex链接及其指向“Atomic Scope的BizTalk消息存档管道组件”的链接,该组件看起来需要我的客户付费。我已经下载了试用版,看看有没有运气

David-我同意编排应该代表业务流程,制作文件副本不是业务流程的一部分。我只是假设,当我开始修补时,我可以按照我发布的链接上的建议,在编排中自己完成

我也不希望依赖消息框数据库中的BizTalk跟踪,因为我认为跟踪的消息需要定期修剪。这是对的还是我在胡说八道

然而,有没有一种方法可以让我做原子示波器已经做过的事情,而且可能更便宜

**大家好,我已经从David的原始帖子中了解到了这一点,我还创建了一个发送端口,它只有一个“过滤器”表达式,如-BTS.ReceivePortName==ReceivePortName


谢谢大家**

我认为您应该看看Biztalk消息存档管道组件。您可以在Codeplex()上找到它


您必须创建新管道并将其部署到biztalk组。然后更新您的接收管道,将文件归档到运行此接收位置的主机有权访问的位置。

正如您链接到的帖子所示,有几种方法可以实现这种结果

第一个问题是:你需要跟踪什么

在你的情况下,这个问题似乎有两个可能的答案,我将分别回答

在BizTalk接触消息之前,您需要跟踪从线下接收到的消息 这种情况经常出现,您需要能够证明BizTalk解决方案不是消息中出现的任何消息损坏或降级的根源

有两种常见的方法:

  • 使用管道组件,如Ben Runchey建议的那样

    这里有另一个用于存档的管道组件示例。这看起来不错-如果您使用其他组件,并且在放置此组件的位置上仍然遵循BizTalk流模型的正确做法,请务必小心。BizTalk管道都是forwardonly流,这意味着您的流只可读一次,并且它们上的所有工作都以事件方式进行

    这是一个很好的方法,但需要注意以下几点:

    • 您需要小心管道组件中使用的流
    • 您实际上没有跟踪在线消息-管道实际看到的是经过BizTalk适配器(例如HTTP适配器、文件等)后的消息
  • 依靠BizTalk的开箱即用跟踪

    BizTalk会自动将所有消息持久保存到消息框数据库,如果启用BizTalk跟踪,则可以使BizTalk保留这些消息

    这里的主要缺点是,启用此跟踪将导致服务器上的某些性能下降-具体取决于具体情况,这可能不是一个巨大的打击,但它可能是显著的

  • 您可以在消息通过初始接收管道后跟踪它 使用这种方法有两个主要选项,使用订阅接收端口的纯消息发送端口和使用业务流程发送端口

    我个人不喜欢使用编排发送端口。业务流程通常最好用于建模所需的业务流。除非此归档是标准用户所理解的业务流程的一部分,否则它可能会混淆解决方案中的功能

    我倾向于使用的方法是在BizTalk管理控制台中创建订阅接收端口的消息发送端口。然后,发送端口将只使用标准的BizTalk文件适配器和直通管道