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