Обзор
У меня есть настраиваемый компонент конвейера порта отправки, который заменяет имя файла, отображаемого в конвейере отправки, на определенный формат маски файла. Код конвейера принимает свойство ReceivedFileName и применяет к нему преобразование. Этот процесс работает уже больше года, но после развертывания новой схемы и ресурсов карты конвейер перестал работать. Теперь у меня нет файла, созданного из-за приведенных ниже предупреждений и ошибок. Я надеюсь, что у кого-то, возможно, был подобный опыт, и он мог бы дать мне представление об этой проблеме.
Примечания: Карты и схемы работают (новые и старые), когда конвейер не используется. Единственное изменение в картах и артефактах схемы - это добавление двух схем TypedPolling, двух схем FlatFile и двух карт.
Вот предупреждение и ошибка, которые я получил при использовании адаптера SFTP
Предупреждение
Адаптеру не удалось передать сообщение для отправки на порт «SEND_FileFormat_BSFTP» с URL-адресом «SFTP: //xxx.xxx.xxx.xxx: 22 / ToPartner / sftp /% SourceFileName%». Он будет передан повторно после интервала повтора, указанного для этого порта отправки. Подробности: «При обработке сообщения произошел непредвиденный сбой. Текст, связанный с исключением:« [SftpTransmitterEndpoint] Невозможно передать файл. Внутреннее исключение:
Макрос% SourceFileName% можно использовать только с http://schemas.microsoft.com/BizTalk/2006/sftp-properties. . Изменение каких-либо свойств транспорта порта отправки может потребовать перезапуска хоста, поскольку в пуле соединений могут все еще быть соединения ".".
Ошибка
Сообщение, отправленное адаптеру «SFTP» на порт отправки «SEND_FileFormat_BSFTP» с URI «SFTP: //xxx.xxx.xxx.xxx: 22 / ToPartner / sftp /% SourceFileName%», приостановлено. Сведения об ошибке: System.ArgumentException: свойство с именем http://schemas.microsoft.com/BizTalk/2003/file-properties#ReceivedFileName "отсутствует.
Трассировка стека сервера: в System.ServiceModel.Channels.MessageProperties.get_Item (имя строки)
в Microsoft.BizTalk.Adapter.Sftp.SftpOutputChannel.BuildFileName (сообщение-сообщение) в Microsoft.BizTalk.Adapter.Sftp.SftpOutputChannel.Send ( Сообщение сообщения, TimeSpan timeOut) в System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage (IntPtr md, Object [] args, Object server, Object [] & outArgs) в System.Runtime.Remoting.Messaging.StackBuilderSink.AsyncProcessMessage (IM сообщение, IMessageSink replySink)Исключение повторно генерируется в [0]: в System.Runtime.AsyncResult.End [TAsyncResult] (результат IAsyncResult)
в System.ServiceModel.Channels.ServiceChannel.SendAsyncResult.End (результат SendAsyncResult) в System.SChannels.ServiceModel.ServiceModel. EndCall (действие String, выходы Object [], результат IAsyncResult) в System.ServiceModel.Channels.ServiceChannel.EndSend (результат IAsyncResult)Исключение повторно генерируется в [1]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData и msgData, тип Int32) Channels.IOutputChannel.EndSend (результат IAsyncResult) в Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.SendCallback (результат IAsyncResult) MessageId: {055A8864-AB06-4849-ADC3-A5CB930Ed -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: в Blogical.Shared.Adapters.Sftp.SftpTransmitterEndpoint.ProcessMessageInternal (сообщение IBaseMessage, ISftp sftp) в 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, String uri) в Blogical.Shared.Adapters.Sftp.SftpTransmitterEndpoint.ProcessMessageInternal (сообщение IBaseMessage, ISftp sftp)
Я пытался:
- Обновление конвейера, схемы и артефактов карты
- Использование% MessageId%,% SourceFileName% и * .dat в качестве значений имени файла SFTP
- Остановка портов отправки, перезапуск хост-экземпляров
- Остановка всего в приложении и перезапуск всех экземпляров хоста
- Повторное обнаружение артефактов
- Использование файлового адаптера вместо SFTP