我写了一个网络服务,简而言之,它使用 openpop 来获取电子邮件,将内容插入数据库并保存图像附件。当我在本地保存图像时,它工作得很好,它完全符合它的假设。现在增加的要求是将图像保存到 FTP 目录,所以我可以动态创建我的文件夹(它们是基于时间戳创建的)并且效果很好。我的问题来自当我尝试将它们保存到 ftp 时。是的,我的用户名和密码是正确的,否则我不会创建目录。
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
我也尝试过使用 Passive False 和 Binary False,我对堆栈跟踪进行了更多研究。并找到了这篇文章,但目前还没有解决方案。任何输入将不胜感激,我还针对不同的问题发布了另一个关于 Windows 服务的问题。如果您想试一试,另一个问题不是关于 ftp,而是关于 windows server 2003 上服务的权限