【发布时间】:2013-12-09 15:25:15
【问题描述】:
我的 BizTalk 2010 项目中有一个接收位置,有时该接收位置会接收一个空文件。接收管道是 PassThruReceive。然后,我们有一个发送端口,该端口具有该接收端口名称的过滤器。所以我们所做的就是将文件从接收位置移动到发送位置。
我遇到的问题是,如果我们在接收位置获得一个空文件,我的客户希望该文件仍被移动到发送端口。我知道开箱即用,FILE 适配器丢弃空文件并将一个事件写入事件日志,说明它已被删除。
我关注的文章显示了完成此任务的自定义 FILE 适配器。我在这个自定义适配器上取得了一些成功。文件被拾取。由 BizTalk 接收并且发送端口成功发送文件。但是,即使使用此解决方案,我在接收端也遇到了文件被锁定且无法删除的问题。我关注了有关此主题的各种文章,每次文件被锁定且无法删除时都会遇到相同的问题。
我的问题是。即使batchMessage.Message.BodyPart.Data.Close(); 被调用,流仍然被锁定。有什么方法可以让我找到 BizTalk 可能锁定文件的其他位置吗?有没有其他的处理方式?
我关注的一篇文章位于此处:http://biztalkwithshashikant.blogspot.com/2011/04/processing-empty-files-in-biztalk.html
【问题讨论】:
-
您是否设置了 WIP 值?而且,如果文件有数据,它会起作用吗?
-
我确实设置了值,如果有数据或没有数据,它有同样的问题。
-
我会在 File.Delete 上设置一个断点,然后使用 Process Explorer 查看谁锁定了文件,然后向下挖掘,看看底层 Stream 是否仍然是 FileStream。虽然如果不是,我不确定下一步我会做什么:)。
标签: biztalk biztalk-2010