たまに再起動するプログラムがあります。このプログラムは、フォルダーから ftp サーバーにファイルをアップロードするスレッドを開始するタイマーを使用します。しかし、ftp サーバーがダウンすると、プログラムは必要に応じて再起動しますが、古いプロセスは終了せず、タスク マネージャーに残ります。ftp が復旧すると、プロセスの終了が開始されます。
この問題は、ftp サーバーがオンラインの場合には発生しません。
FTP サーバーがオフラインのときにプロセスが停止する原因は何ですか?
使用するプログラムを再起動するにはApplication.Restart()
現在のコード:
Public Sub UploadToFTP()
Dim request = DirectCast(WebRequest.Create(FtpAdress), FtpWebRequest)
request.Credentials = New NetworkCredential(_UserName, _Password)
request.Method = WebRequestMethods.Ftp.ListDirectory
Try
Using response As FtpWebResponse = DirectCast(request.GetResponse(), FtpWebResponse)
Try
Dim _FromPath As String
Dim _ToPath As String
Dim Dt As New DataTable
Dim flag As Boolean = False
'Create a link to an FtpServer
Dim ftp As New FTPclient(_HostName, _UserName, _Password)
Dim _dir As New DirectoryInfo(sourceDir)
' Upload multiple files
For Each _file As FileInfo In _dir.GetFiles("*.*")
_FromPath = sourceTxt + _file.Name
_ToPath = "/UploadedData /" + _file.Name
'upload a file
flag = ftp.Upload(_FromPath, _ToPath)
'' file uploaded then delete
If flag Then
_file.Delete()
End If
Next
Catch ex As Exception
End Try
End Using
Catch ex As WebException
Dim response As FtpWebResponse = DirectCast(ex.Response, FtpWebResponse)
'Does not exist
If response.StatusCode = FtpStatusCode.ActionNotTakenFileUnavailable Then
End If
End Try
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
FTPup = New System.Threading.Thread(AddressOf UploadToFTP)
FTPup.Priority = ThreadPriority.AboveNormal
FTPup.Start()
End Sub