Я написал веб-сервис, в двух словах он использует openpop для получения сообщений электронной почты, делает вещи с содержимым для вставки в базы данных и сохраняет вложения, которые являются изображениями. Это отлично работает, когда я сохраняю изображения локально, он делает именно то, что должен. Теперь дополнительным требованием было сохранение изображений в каталоге FTP, чтобы я мог динамически создавать свои папки (они создаются на основе метки времени), и это работает хорошо. Моя проблема возникает, когда я пытаюсь сохранить их на ftp. Да, мое имя пользователя и пароль верны, иначе я бы не создавал каталог.
Private Sub UploadFile(ByVal fileToSave As FileInfo, ByVal path As String)
Dim UploadRequest As FtpWebRequest = DirectCast(WebRequest.Create("ftp://UserName:[email protected]" & 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
Я также пробовал использовать Passive False и Binary False, я провел больше исследований по трассировке стека. И нашел эту статью но решения пока нет. Буду признателен за любой вклад, я также отправляю еще один вопрос о службах Windows по другой проблеме. Если вы хотите попробовать это, другой вопрос не о ftp, а о разрешениях для службы на сервере Windows 2003.