FTP COM SSL/TSL NO VB.NET

VANTO 29/05/2014 21:41:37
#438613
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?
KERPLUNK 30/05/2014 09:23:59
#438622
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?
VANTO 30/05/2014 09:51:49
#438624
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.
KERPLUNK 30/05/2014 10:00:05
#438625
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?
VANTO 30/05/2014 10:45:30
#438628
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?
KERPLUNK 30/05/2014 11:43:53
#438629
O que você quer dizer com [Ô]exemplo[Ô]?
VANTO 30/05/2014 12:05:13
#438631
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
KERPLUNK 30/05/2014 13:54:30
#438632
Sem sucesso é meio vago, onde deu erro e que erro foi?
Tópico encerrado , respostas não são mais permitidas