FTP COM SSL/TSL NO VB.NET
Pessoal,
Estou precisando salvar um arquivo no meu servidor, pensei em utilizar FTP porém meu servidor só aceita conexão segura, alguém tem algum código ou dll que eu possa fazer esta conexão?
Estou precisando salvar um arquivo no meu servidor, pensei em utilizar FTP porém meu servidor só aceita conexão segura, alguém tem algum código ou dll que eu possa fazer esta conexão?
Evite usar FTP, é quase 100% das vezes uma má idéia(vou morrer acentuando idéia). Com ou sem conexão segura o código é a mesma coisa, com exceção de se adicionar os dados de login/certificado ao client. Mesmo assim, FTP não é uma boa idéia. O que você precisa fazer?
Olá,
Seguinte, tenho uma tela no sistema onde os clientes podem me mandar um e-mail com um backup do banco de dados, eu sempre solicito para encontrar algum erro no sistema, porém alguns bancos estão muito grandes, com mais de 100 mb (zipado) e não dá para anexar na conta de e-mail do cliente, então eu gostaria de enviar este arquivo pro meu servidor de onde poderei baixar na minha máquina. Não precisa ser por ftp, pode ser de outra forma, seria bom uma forma que eu pudesse exibir o status do progresso pro cliente, pois pode demorar e os caras não tem paciência e acabam fechando a aplicação, tentei usar o webclient más não encontrei exemplos completos para testar.
Se tiver alguma idéia, será de grande ajuda.
Seguinte, tenho uma tela no sistema onde os clientes podem me mandar um e-mail com um backup do banco de dados, eu sempre solicito para encontrar algum erro no sistema, porém alguns bancos estão muito grandes, com mais de 100 mb (zipado) e não dá para anexar na conta de e-mail do cliente, então eu gostaria de enviar este arquivo pro meu servidor de onde poderei baixar na minha máquina. Não precisa ser por ftp, pode ser de outra forma, seria bom uma forma que eu pudesse exibir o status do progresso pro cliente, pois pode demorar e os caras não tem paciência e acabam fechando a aplicação, tentei usar o webclient más não encontrei exemplos completos para testar.
Se tiver alguma idéia, será de grande ajuda.
Para envio de dados, eu uso serialização dos objetos usados quando da ocorrência do erro para arquivo, zip os arquivos e faço upload no bug tracker da aplicação. Para simular o erro com os mesmos dados, simplesmente crio um pseudo-database com os dados enviados e uso na aplicação. Não precisa ser o banco de dados completo, somente os dados que geraram o erro.
Mas para tudo isso funcionar, você deve ter sua aplicação usando de OOP, está aà mais uma vantagem do uso dessa técnica. Se você não tem isso, então além de ter muito mais erros na sua aplicação, ela fica difÃcil de fazer correções/upgrades e em caso de erros dependentes de dados, você fica nesse impasse que você está.
Para solucionar o seu problema, ao invés de enviar via FTP, que tal fazer upload do arquivo via HTTP mesmo?
Mas para tudo isso funcionar, você deve ter sua aplicação usando de OOP, está aà mais uma vantagem do uso dessa técnica. Se você não tem isso, então além de ter muito mais erros na sua aplicação, ela fica difÃcil de fazer correções/upgrades e em caso de erros dependentes de dados, você fica nesse impasse que você está.
Para solucionar o seu problema, ao invés de enviar via FTP, que tal fazer upload do arquivo via HTTP mesmo?
Olá, infelizmente ainad não tenho tudo em OOP, estou migrando aos poucos, então acho que http seria mesmo a solução por enquanto, neste caso eu usaria o webclient, você tem algum exemplo?
O que você quer dizer com [Ô]exemplo[Ô]?
Tentei utilizar o código abaixo, sem sucesso.
Private Sub UploadProgressChanged(ByVal sender As Object, ByVal e As Net.UploadProgressChangedEventArgs)
[ô] The progress is updated
ProgressBar1.Value = e.ProgressPercentage
End Sub
Private Sub UploadValuesCompleted(ByVal sender As Object, ByVal e As Net.UploadValuesCompletedEventArgs)
Dim responsebytes = e.Result
Dim responsebody = (New System.Text.UTF8Encoding).GetString(responsebytes)
[ô] Do whatever you want
MsgBox(responsebody)
End Sub
Private Function uploadFile(ByVal fileName As String) As Boolean
Dim data() As Byte = IO.File.ReadAllBytes(fileName)
Dim base64String = System.Convert.ToBase64String(data)
Try
Using client As New Net.WebClient
Dim creds As New Net.NetworkCredential([Ô]login[Ô], [Ô]senha[Ô], [Ô]dominio[Ô])
client.Credentials = creds
Dim reqParm As New Specialized.NameValueCollection
reqParm.Add([Ô]body[Ô], base64String)
AddHandler client.UploadProgressChanged, AddressOf UploadProgressChanged
AddHandler client.UploadValuesCompleted, AddressOf UploadValuesCompleted
client.UploadValuesAsync(New System.Uri([Ô]http://dominio/downloads/xxx.txt[Ô]), [Ô]POST[Ô], reqParm)
End Using
Catch ex As System.Net.WebException
MsgBox(ex.Message)
Finally
[ô]
End Try
Return True
End Function
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
UploadFile([Ô]C:\xxx.txt[Ô])
End Sub
Sem sucesso é meio vago, onde deu erro e que erro foi?
Tópico encerrado , respostas não são mais permitidas