1

MVC4 アプリケーションは、HomeController からのアクションで FTP サーバーからファイルをダウンロードします。Visual Studio 2010 Web サーバーとローカル Web サーバー IIS Express 8 で動作します。しかし、ApplicationPoolIdenty でローカル Web サーバー IIS 7.5 を使用すると、ダウンロードが機能しません。コマンド "response = reqFTP.GetResponse()" を使用した行で応答を受信せず、次の例外が表示されます: "The operation hasタイムアウトしました")。

Windowsファイアウォールをオフにすると、機能します。私は何をする必要がありますか?

Function FtpStart() As ActionResult
        Dim downloadFiles As String()
        Dim result As New StringBuilder()
        Dim response As WebResponse = Nothing
        Dim reader As StreamReader = Nothing
        Try
            Dim reqFTP As FtpWebRequest
            reqFTP = DirectCast(FtpWebRequest.Create(New Uri("ftp://adress")),FtpWebRequest)
            reqFTP.UseBinary = True
            reqFTP.Credentials = New NetworkCredential("user", "pw")
            reqFTP.EnableSsl = False
            reqFTP.Method = WebRequestMethods.Ftp.ListDirectory
            reqFTP.Proxy = Nothing
            reqFTP.KeepAlive = False
            reqFTP.UsePassive = False
            Debug.WriteLine("Get Response: ")
            response = reqFTP.GetResponse()
            Debug.WriteLine("Response received")
            reader = New StreamReader(response.GetResponseStream())
            Dim line As String = reader.ReadLine()
            While line IsNot Nothing
                result.Append(line)
                result.Append(vbLf)
                line = reader.ReadLine()
                Debug.WriteLine("File: " & line)
            End While
            result.Remove(result.ToString().LastIndexOf(ControlChars.Lf), 1)
            Return RedirectToAction("Index")
        Catch ex As Exception
            Debug.WriteLine(ex.ToString())
            Return RedirectToAction("Index")
        End Try
    End Function
4

1 に答える 1