FTP upload to OpenVMS using VB.NET

Posted on 2008-06-16
Last Modified: 2013-12-06
I am attempting to FTP a file with a specific format to an OpenVMS system, using the VB.NET FtpWebRequest object (see code snippet).  The strExportText string is given a value by opening a .txt file and reading in the contents.  The text file contains 3 lines of text.  The code below will successfully make the connection, stream the bytes, and end the connection.  When the file is opened on the OpenVMS side, the carriage returns are not being recognized.  There should be 3 lines of text, where now there is one continuous line with the letters CR and LF at the carriage return and line feed positions.  What settings need to be set in order for the OpenVMS to understand the characters?
Private Function ExportShipped(ByVal strExportText As String) As DBReturn

        Dim dbrReturn As DBReturn = DBReturn.Fail

        Dim ftpReq As FtpWebRequest

        Dim ftpStream As IO.Stream

        Dim bytExportText(strExportText.Length) As Byte

        Dim sdrSOExportInfo As SqlDataReader

        Dim strFTPDirectory As String

        Dim strFileName As String

        Dim strUserName As String

        Dim strPassword As String



            sdrSOExportInfo = mobjDBShipping.GetSOExportInfo()

            If sdrSOExportInfo.Read Then

                strFTPDirectory = sdrSOExportInfo(db_Shipping.SOExportIX.OutputDirectory).ToString

                strFileName = sdrSOExportInfo(db_Shipping.SOExportIX.OutputFileName).ToString

                strUserName = sdrSOExportInfo(db_Shipping.SOExportIX.Username).ToString

                strPassword = sdrSOExportInfo(db_Shipping.SOExportIX.Password).ToString

                ftpReq = FtpWebRequest.Create(strFTPDirectory & "\" & strFileName)

                ftpReq.Credentials = New NetworkCredential(strUserName, strPassword)

                ftpReq.Method = WebRequestMethods.Ftp.UploadFile

	       ftpReq.UseBinary = True

                bytExportText = Encoding.Default.GetBytes(strExportText)

                ftpReq.ContentLength = bytExportText.Length

                ftpStream = ftpReq.GetRequestStream

                ftpStream.Write(bytExportText, 0, bytExportText.Length)


                'ftpResponse = ftpReq.GetResponse()

                '("Upload File Complete, status {0}", ftpResponse.StatusDescription)

                '  ftpResponse.Close()

                dbrReturn = DBReturn.Success


                dbrReturn = DBReturn.Fail

            End If

        Catch ex As Exception

            Throw ex

        End Try

        Return dbrReturn

    End Function

Open in new window

Question by:pprater1

Accepted Solution

jmfairchild earned 500 total points
ID: 21797537
I believe that your problem may lie in the binary transfer. It has been awhile since I worked with VMS, but I believe you will have to FTP the file in ASCII format to ensure it gets read properly on the OpenVMS end. Try setting the UseBinary statement to ftpReq.UseBinary = False. If that doesn't work, or you can't use it for some reason, you will need to convert the file on the other (OpenVMS) end. If so, I could probably scare up an old DCL command file that would do the trick if you would feel comfortable with that solution.

Author Closing Comment

ID: 31467712
I ended up trying this before you posted and it is absolutely correct.  I used a combination of setting UseBinary = False and the Encoding in line #25 to ASCII.  Not exactly sure why it wanted straight text instead of binary, but it worked.  Thanks for your help!!

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

We recently endured a series of broadcast storms that caused our ISP to shut us down for brief periods of time. After going through a multitude of tests, we determined that the issue was related to Intel NIC drivers on some new HP desktop computers …
Windows 10 is here and for most admins this means frustration and challenges getting that first working Windows 10 image. As in my previous sysprep articles, I've put together a simple help guide to get you through this process. The aim is to achiev…
After creating this article (, I decided to make a video (no audio) to show you how to configure the routers and run some trace routes and pings between the 7 sites…
After creating this article (, I decided to make a video (no audio) to show you how to configure the routers and run some trace routes and pings between the 7 sites…

912 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now