ERRO - FTP VB.NET
Bom dia.
Estava com problema para listar arquivos de um FTP e o mesmo já foi sanado pelo Alevale.
Porem hoje ao dar continuidade na tarefa me deparei com o erro de [Ô]AÇÃO PROIBIDA[Ô] ao solicitar o download do arquivo.
Mensagem de erro:
Ocorreu uma exceção sem tratamento do tipo [ô]System.Net.WebException[ô] em FTP_JK.exe
Informações adicionais: O servidor remoto retornou um erro: (403) Proibido.
Tentei colocar a seguinte configuração.
====================================================================================================================
Dim ftpRequest As FtpWebRequest = CType(WebRequest.Create(downloadUri), FtpWebRequest)
ftpRequest.UsePassive = True
ftpRequest.Credentials = New NetworkCredential(Me.m_userName, Me.m_password)
Dim ftpResponse As FtpWebResponse = CType(ftpRequest.GetResponse, FtpWebResponse) ---> O erro esta nesta linha.
====================================================================================================================
Alguém sabe me disser o que pode estar errado?
Pois em tudo que procurei (WEB) indicar que a configuração é esta.
Estava com problema para listar arquivos de um FTP e o mesmo já foi sanado pelo Alevale.
Porem hoje ao dar continuidade na tarefa me deparei com o erro de [Ô]AÇÃO PROIBIDA[Ô] ao solicitar o download do arquivo.
Mensagem de erro:
Ocorreu uma exceção sem tratamento do tipo [ô]System.Net.WebException[ô] em FTP_JK.exe
Informações adicionais: O servidor remoto retornou um erro: (403) Proibido.
Tentei colocar a seguinte configuração.
====================================================================================================================
Dim ftpRequest As FtpWebRequest = CType(WebRequest.Create(downloadUri), FtpWebRequest)
ftpRequest.UsePassive = True
ftpRequest.Credentials = New NetworkCredential(Me.m_userName, Me.m_password)
Dim ftpResponse As FtpWebResponse = CType(ftpRequest.GetResponse, FtpWebResponse) ---> O erro esta nesta linha.
====================================================================================================================
Alguém sabe me disser o que pode estar errado?
Pois em tudo que procurei (WEB) indicar que a configuração é esta.
Estou tentndo assim para ajustar, mas o erro continua.
O que de errado?
[ô]Confugurando Proxy
Dim Proxy As New System.Net.WebProxy(New Uri([Ô]http://192.168.49.1:3821[Ô]))
Proxy.Credentials = New NetworkCredential([Ô]elima[Ô], [Ô]025846[Ô])
O que de errado?
[ô]Confugurando Proxy
Dim Proxy As New System.Net.WebProxy(New Uri([Ô]http://192.168.49.1:3821[Ô]))
Proxy.Credentials = New NetworkCredential([Ô]elima[Ô], [Ô]025846[Ô])
CAro VELDRAME
Você adicionou permissão para o acesso a esta Diretório........
Isso significa que tem uma restrição ao IP ou diretório onde est apontado para seu FTP
Solução é dar permissão a este diretório:
Entre e clique na guia Segurança de diretório e, em seguida, clique em Editar na área restrições de nome de domÃnio e endereço IP ..
E depois clique em acesso concedidoe, em seguida, clique em OK duas vezes.
Boa Sorte
Você adicionou permissão para o acesso a esta Diretório........
Isso significa que tem uma restrição ao IP ou diretório onde est apontado para seu FTP
Solução é dar permissão a este diretório:
Entre e clique na guia Segurança de diretório e, em seguida, clique em Editar na área restrições de nome de domÃnio e endereço IP ..
E depois clique em acesso concedidoe, em seguida, clique em OK duas vezes.
Boa Sorte
Caro AJSO.
Obrigado pela resposta.
O FTP é externo, é do Correios, na pasta em questão ficam os arquivos de respostas do serviço contratado de rastreamentos de AR.
Eu baixo os arquivos e inputo no meu sistema.
Então não dá para alterar permissão. Na verdade acho que é só leitura pois só consigo baixar e não faço mais nada.
Tão que eu consigo listar os arquivos e visualizar se conteúdo.
Pensei na opção de ler os arquivos e criar um txt com as informações ao invés de baixa-los, mas isso não é possÃvel pois a empresa tem que ter uma cópia do arquivo original para garantir consistência dos dados (exigência de um dos nossos clientes) .
Alguma outra sugestão?
Obrigado pela resposta.
O FTP é externo, é do Correios, na pasta em questão ficam os arquivos de respostas do serviço contratado de rastreamentos de AR.
Eu baixo os arquivos e inputo no meu sistema.
Então não dá para alterar permissão. Na verdade acho que é só leitura pois só consigo baixar e não faço mais nada.
Tão que eu consigo listar os arquivos e visualizar se conteúdo.
Pensei na opção de ler os arquivos e criar um txt com as informações ao invés de baixa-los, mas isso não é possÃvel pois a empresa tem que ter uma cópia do arquivo original para garantir consistência dos dados (exigência de um dos nossos clientes) .
Alguma outra sugestão?
Solução:
[ô]------------------------------ Local para o Download , Arquivo a Ser Baixado , Usuário(FTP) , Senha (FTP)
Public Function Download(ByVal destinationFile As String, ByVal downloadUri As Uri, ByVal wUsuario As String, ByVal wSenha As String) As FtpStatusCode
Try
[ô]Configura o pedido
Dim ftpRequest As FtpWebRequest = CType(WebRequest.Create(downloadUri), FtpWebRequest)
[ô]Credenciais para a conexão
ftpRequest.Credentials = New NetworkCredential(wUsuario, wSenha)
[ô]Tipo de conexão
ftpRequest.UsePassive = True
ftpRequest.KeepAlive = True
ftpRequest.Proxy = Nothing [txt-color=#e80000] ----> O erro estava acontecendo porque eu não conseguia fazer o Proxy funcionar, ai encontrei esta opção - Não usar o Proxy[/txt-color]
[ô]Requisição no FTP
ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile
[ô]Obtém o objeto de resposta
Using ftpResponse As System.Net.FtpWebResponse = CType(ftpRequest.GetResponse, FtpWebResponse)
Using responseStream As IO.Stream = ftpResponse.GetResponseStream
[ô]Para Ler o arquivo de origem e Escrever o Arquivo de destino
Using fs As New IO.FileStream(destinationFile, IO.FileMode.Create)
Dim buffer(2047) As Byte
Dim read As Integer = 0
Do
read = responseStream.Read(buffer, 0, buffer.Length)
fs.Write(buffer, 0, read)
Loop Until read = 0
responseStream.Close()
fs.Flush()
fs.Close()
End Using
responseStream.Close()
End Using
ftpResponse.Close()
End Using
Catch ex As Exception
Throw ex
End Try
End Function
[ô]------------------------------ Local para o Download , Arquivo a Ser Baixado , Usuário(FTP) , Senha (FTP)
Public Function Download(ByVal destinationFile As String, ByVal downloadUri As Uri, ByVal wUsuario As String, ByVal wSenha As String) As FtpStatusCode
Try
[ô]Configura o pedido
Dim ftpRequest As FtpWebRequest = CType(WebRequest.Create(downloadUri), FtpWebRequest)
[ô]Credenciais para a conexão
ftpRequest.Credentials = New NetworkCredential(wUsuario, wSenha)
[ô]Tipo de conexão
ftpRequest.UsePassive = True
ftpRequest.KeepAlive = True
ftpRequest.Proxy = Nothing [txt-color=#e80000] ----> O erro estava acontecendo porque eu não conseguia fazer o Proxy funcionar, ai encontrei esta opção - Não usar o Proxy[/txt-color]
[ô]Requisição no FTP
ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile
[ô]Obtém o objeto de resposta
Using ftpResponse As System.Net.FtpWebResponse = CType(ftpRequest.GetResponse, FtpWebResponse)
Using responseStream As IO.Stream = ftpResponse.GetResponseStream
[ô]Para Ler o arquivo de origem e Escrever o Arquivo de destino
Using fs As New IO.FileStream(destinationFile, IO.FileMode.Create)
Dim buffer(2047) As Byte
Dim read As Integer = 0
Do
read = responseStream.Read(buffer, 0, buffer.Length)
fs.Write(buffer, 0, read)
Loop Until read = 0
responseStream.Close()
fs.Flush()
fs.Close()
End Using
responseStream.Close()
End Using
ftpResponse.Close()
End Using
Catch ex As Exception
Throw ex
End Try
End Function
Caro AJSO.
A sua solução não deu certo, mas como você tentou estou te pontuando.
Abrigado mais uma vez.
A sua solução não deu certo, mas como você tentou estou te pontuando.
Abrigado mais uma vez.
Tópico encerrado , respostas não são mais permitidas