VisualStudio2008にてFTP処理で「リモート サーバーがエラーを返しました: (407) プロキシ認証が必要です」エラー

質問 VisualStudio2008にてFTP処理で「リモート サーバーがエラーを返しました: (407) プロキシ認証が必要です」エラー

  • 2011年8月28日 23:27
     
     

    初めて投稿します。

    VisualStudio2008にてプログラム開発を行っています。

    ネットワーク環境は以下の通りです。

     ・プロキシ未使用

     ・社内LAN環境

    FTPを使用して別のサーバ(AIX)からファイルを取得する処理を作成しましたが、下記の通りエラーとなります。 

    以下、処理コード
    Dim req As FtpWebRequest = DirectCast(FtpWebRequest.Create(pUri), FtpWebRequest)req.Credentials = New NetworkCredential(ログインID,パスワード)

    req.Method = WebRequestMethods.Ftp.DownloadFile

    '要求の完了後に接続を閉じるかどうか
    req.KeepAlive = True

    'バイナリモードで転送する
    req.UseBinary = True

    'PASSIVEモードを無効にする
    req.UsePassive = False

    'タイムアウトを設定する
    req.Timeout = 500000

    Try
        'ファイルをダウンロードする
        Using res As FtpWebResponse = DirectCast(pReq.GetResponse(), FtpWebResponse)
    ↑ここで「Message "リモート サーバーがエラーを返しました: (407) プロキシ認証が必要です」となる。
            Using st As Stream = res.GetResponseStream()
                Using fs As New FileStream(pLocalPath, FileMode.Create, IO.FileAccess.Write)
                    Dim buf(1024) As Byte
                    Dim count As Integer = 0

                    Do
                        count = st.Read(buf, 0, buf.Length)
                        fs.Write(buf, 0, count)
                    Loop While count <> 0
                End Using
            End Using
        End Using
    Catch ex As Exception
        Throw
    End Try

     

    FFFTPではファイル取得が可能ですので、コーディングに不備があるのではではないかと思っています。

    ご教示宜しくお願いします。

     

すべての返信

  • 2011年8月29日 0:49
    モデレータ
     
     
        'ファイルをダウンロードする
        Using res As FtpWebResponse = DirectCast(pReq.GetResponse(), FtpWebResponse)
    ↑ここで「Message "リモート サーバーがエラーを返しました: (407) プロキシ認証が必要です」となる。

    pReqが唐突に出てきますが、タイポでしょうか? もし、そうであれば、とりあえずtracertコマンドでそのuriへの経路を確認してみて下さい。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
  • 2011年9月1日 11:53
     
     

    お世話になっております。さっとんです。

    ほぼ、解決しました。
    原因は2点ありました。
    1.社内LANでもセグメントが異なる場所からFTP転送しようとした。
     対策:インターネットオプションより、信頼済サイト、ローカルイントラネッに登録
    2.社内の認証システムにアクセスする設定となっていた。
     対策:接続タブ→LANより「自動構成スクリプトを使用する」チェックを
        外す

    それでもGETしようとしたファイルに対してアクセス権限がないと
    いうエラーとなりましたが、こちらはrootユーザでディレクトリを作成しているため、このエラーに
    なったと思われます。

    最終的には/xxx/yyy/→/%2fxxx/%2fyyyとすることで解決できました。
    もし、もっとよい解決策があればご教示ください。