Я не видел ничего, что выделялось бы как неправильное.
«System.IO.Streamreader», который вы получаете, будет ожидаемым результатом, если эта строка:
ftpStreamWriter.Write(New StreamReader(responseStream).ReadToEnd)
было на самом деле так:
ftpStreamWriter.Write(New StreamReader(responseStream))
Можете ли вы дважды проверить, что .ReadToEnd был там в версии, которую вы тестируете, и что если все скомпилировано нормально?
Предполагая, что это не проблема, что произойдет, если вы сделаете:
dim sToWrite as String = New StreamReader(responseStream).ReadToEnd
debug.write(sToWrite)
ftpStreamWriter.Write(sToWrite)
Проверка этой строки как минимум скажет вам, правильно ли вы читаете данные.
Вы не включаете много определений типов, поэтому я должен был угадать типы, но вы можете попробовать включить опцию строго, чтобы посмотреть, не обнаружит ли она проблемы типов, которые вы не заметили.