1

概述

我有一个自定义发送端口管道组件,它用特定的文件掩码格式替换发送管道上映射的文件的文件名。管道代码采用 ReceivedFileName 属性并对其应用转换。这个过程已经运行了一年多,但是在部署了新的模式和映射资源之后,管道已经停止工作。由于以下警告和错误,我现在没有创建任何文件。我希望有人可能有类似的经历,可以让我深入了解这个问题。

注意:地图和模式在不使用管道时有效(新旧)。对映射和架构工件的唯一更改是添加了 2 个 TypedPolling 架构、2 个 FlatFile 架构和 2 个映射。

这是我使用 SFTP 适配器时遇到的警告和错误

警告

适配器无法传输要发送端口“SEND_FileFormat_BSFTP”且 URL 为“SFTP://xxx.xxx.xxx.xxx:22/ToPartner/sftp/%SourceFileName%”的消息。它将在为此发送端口指定的重试间隔后重新传输。详细信息:“处理消息时发生意外故障。与异常关联的文本是“[SftpTransmitterEndpoint] 无法传输文件。内部异常:

%SourceFileName% 宏只能与 http://schemas.microsoft.com/BizTalk/2006/sftp-properties命名空间一起使用。. 更改任何发送端口传输属性可能需要重新启动主机,因为连接池可能仍有连接“。”。

错误

使用 URI “SFTP://xxx.xxx.xxx.xxx:22/ToPartner/sftp/%SourceFileName%”在发送端口“SEND_FileFormat_BSFTP”上发送到适配器“SFTP”的消息被挂起。错误详细信息:System.ArgumentException:名为“ http://schemas.microsoft.com/BizTalk/2003/file-properties#ReceivedFileName ”的属性不存在。


服务器堆栈跟踪:在Microsoft.BizTalk.Adapter.Sftp.SftpOutputChannel.BuildFileName(Message message) 在 Microsoft.BizTalk.Adapter.Sftp.SftpOutputChannel.Send(Message message) 的System.ServiceModel.Channels.MessageProperties.get_Item(String name) TimeSpan timeOut) 在 System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs) 在 System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage(IMessage msg, IMessageSink回复下沉)

在 [0] 处重新引发异常:
在 System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End(SendAsyncResult 结果) 在 System.ServiceModel.Channels.ServiceChannel.EndCall(String System.ServiceModel.Channels.ServiceChannel.EndSend(IAsyncResult 结果)处的操作,Object[] 输出,IAsyncResult 结果)

在 [1] 处重新抛出异常:在 System.ServiceModel 的 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 处的 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)。 Channels.IOutputChannel.EndSend(IAsyncResult 结果)在 Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.SendCallback(IAsyncResult 结果) MessageId:{055A8864-AB06-4849-ADC3-A5CB93016106} InstanceID:{FF1E3802-89CD-466C -B68E-2CF4EC662DF4}

这是我使用 Blogical SFTP 适配器时遇到的错误

方法:Blogical.Shared.Adapters.Sftp.SftpTransmitterEndpoint.ProcessMessage 错误:[SftpTransmitterEndpoint] 无法传输文件。内部异常:%SourceFileName% 宏只能与 http://schemas.microsoft.com/BizTalk/2006/sftp-properties命名空间一起使用。. 更改任何发送端口传输属性可能需要重新启动主机,因为连接池可能仍有连接

------------------------------ 信息:类型:Blogical.Shared.Adapters.Sftp.SftpException 目标:Microsoft.BizTalk.Message .Interop.IBaseMessage ProcessMessageInternal(Microsoft.BizTalk.Message.Interop.IBaseMessage, Blogical.Shared.Adapters.Sftp.ISftp) 消息:[SftpTransmitterEndpoint] 无法传输文件。内部异常:%SourceFileName% 宏只能与 http://schemas.microsoft.com/BizTalk/2006/sftp-properties一起使用命名空间。. 更改任何发送端口传输属性可能需要重新启动主机,因为连接池可能仍具有连接 Stacktrace: at Blogical.Shared.Adapters.Sftp.SftpTransmitterEndpoint.ProcessMessageInternal(IBaseMessage message, ISftp sftp) at Blogical.Shared.Adapters。 Sftp.SftpTransmitterEndpoint.ProcessMessage(IBaseMessage 消息)

------------------------------ 类型:System.Exception 目标:System.String ReplaceMacros(Microsoft.BizTalk.Message.Interop。 IBaseMessage, System.String) 消息:%SourceFileName% 宏只能与http://schemas.microsoft.com/BizTalk/2006/sftp-properties 命名空间一起使用。Stacktrace:在 Blogical.Shared.Adapters.Sftp.SftpTransmitProperties.ReplaceMacros(IBaseMessage 消息,字符串 uri) 在 Blogical.Shared.Adapters.Sftp.SftpTransmitterEndpoint.ProcessMessageInternal(IBaseMessage 消息,ISftp sftp)

我努力了:

  • 刷新管道、架构和地图工件
  • 使用 %MessageId%、%SourceFileName% 和 *.dat 作为我的 SFTP 文件名值
  • 停止发送端口,重新启动主机实例
  • 停止应用程序中的所有内容并重新启动所有主机实例
  • 重新获取工件
  • 使用文件适配器而不是 SFTP
4

1 回答 1

1

这是通过完全重新部署管道组件来解决的。DLL 在发布时不同步。GAC 版本与部署到 BizTalk 的版本不匹配。

于 2015-10-12T19:45:46.100 回答