Проблема с использованием FtpWebRequest для добавления в файл на мейнфрейме - PullRequest
1 голос
/ 16 апреля 2010

Я использую FtpWebRequest для добавления данных в файл мэйнфрейма. Каждая добавляемая запись имеет длину 50 символов, и я добавляю их по одной записи за раз.

В нашей среде разработки у нас нет мэйнфрейма, поэтому мой код был написан и протестирован FTP на Windows-сайт FTP вместо мэйнфрейма. Первоначально я писал каждую запись, используя StreamWriter (используя поток из FtpWebRequest) и записывая каждую запись, используя WriteLine (который автоматически добавляет CR / LF в конец).

Когда мы впервые запустили это в тестовой среде (в которой мы пишем в реальный мэйнфрейм MVS), наш контакт с мэйнфреймом сказал, что CR / LF не могут быть прочитаны его программой какая-то программа для мейнфрейма - он прислал мне снимки экрана, и это все, что я знаю).

Я изменил наш код, чтобы использовать Write вместо WriteLine, но теперь мой код выполняется успешно (т.е. без исключений) при записи нескольких записей, но независимо от того, сколько записей мы добавляем, он может только " см. «Первая запись - согласно его программе мэйнфрейма, в файле есть только одна запись из 50 символов.

Я предполагаю, что для исправления этого я должен написать какой-то другой символ разделителя строк в конце потока (вместо CR / LF), который мэйнфрейм распознает как разделитель записей. Кто-нибудь знает, что это, или как еще я могу решить эту проблему?

1 Ответ

1 голос
/ 16 апреля 2010

У меня фактически была та же самая проблема, и я исправил ее, используя только LF в качестве разделителя.

Кроме того, в дополнение к сообщению, для отправки файла я написал сценарий командной строки и выполнил командную утилиту DOS ftp, потому что встроенный класс .NET FTP не очень хорошо подходил к тому, как мейнфрейм форматировал команды и странная структура "каталога".

...