0

I have wrote a web service, in a nutshell it uses openpop to get email messages does stuff with the content to insert into databases and saves attachments which are images. That works fine when i save images locally, it does exactley what it is suppose to. Now an added requirment was to save images to an FTP directory, so i can create my folders dynamically (they are created based upon timestamp) and that works well. My problem comes from when i try to save them to the ftp. Yes my user name and password are correct, otherwise i wouldn't be creating the directory.

Private Sub UploadFile(ByVal fileToSave As FileInfo, ByVal path As String)
    Dim UploadRequest As FtpWebRequest = DirectCast(WebRequest.Create("ftp://UserName:Passowrd@999.99.999.9" & path), FtpWebRequest)
    UploadRequest.Credentials = New NetworkCredential("PicService", "grean.matching18")
    UploadRequest.Method = System.Net.WebRequestMethods.Ftp.UploadFile
    UploadRequest.UseBinary = True
    UploadRequest.UsePassive = True

    ' Const BufferSize As Integer = 2048
    ' Dim content(BufferSize - 1) As Byte, dataRead As Integer
    Dim bFile() As Byte = System.IO.File.ReadAllBytes(fileToSave.ToString)
    'UploadRequest.ContentLength = content.Length

    Using FileStream1 As FileStream = fileToSave.OpenRead()
        Try
            'open request to send
            Using RequestStream As Stream = UploadRequest.GetRequestStream

            End Using
        Catch ex As Exception
        Finally
            'ensure file closed
            FileStream1.Close()
        End Try
    End Using
End Sub

I have tried using Passive False and Binary False as well, i did more research on my stack trace. And found this article but no solution as of yet. Any input would be appreciated, i am also posting another question on windows services for different issue. If you would like to take a shot at it, the other question isnt about ftp but permissions for a service on windows server 2003

4

1 に答える 1

2

This may not be the solution but I've found that the URI string has to be 'just right' and that what is 'just right' varies by the ftp server.

So ftp://server/directory/file works on some servers but needs to be ftp://server//directory/file to work on others (note the double slash after the server name)

Aso, your URI has 'password' spelled incorrectly: ftp://UserName:Passowrd@999.99.999.9 and you are supplying the credentials in a separate code line as well.

于 2011-11-10T09:26:56.087 に答える