Vb.net 后台程序不循环

Vb.net 后台程序不循环,vb.net,Vb.net,我有一个程序,在后台循环运行,以检查网站上的页面是否已被更改。它工作一次并显示消息框,但如果我再次更改它,它将不会起任何作用 Imports System.Net Imports System.String Imports System.IO Module Main Sub Main() While 1 = 1 Dim client As WebClient = New WebClient()

我有一个程序,在后台循环运行,以检查网站上的页面是否已被更改。它工作一次并显示消息框,但如果我再次更改它,它将不会起任何作用

Imports System.Net
Imports System.String
Imports System.IO
    Module Main
        Sub Main()
            While 1 = 1
                Dim client As WebClient = New WebClient()
                Dim reply As String = client.DownloadString("http://noahcristinotesting.dx.am/file.txt")
                If reply.Contains("MsgBox") Then
                Dim Array() As String = reply.Split(":")
                MessageBox.Show(Array(2), Array(1))
                Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("ftp://noahcristinotesting.dx.am/noahcristinotesting.dx.am/file.txt"), System.Net.FtpWebRequest)
                request.Credentials = New System.Net.NetworkCredential("username", "password")
                request.Method = System.Net.WebRequestMethods.Ftp.UploadFile
                Dim path As String = "C:\test.txt"
                Dim createText As String = "completed"
                File.WriteAllText(path, createText)
                Dim fileftp() As Byte = System.IO.File.ReadAllBytes("C:\test.txt")
                Dim strz As System.IO.Stream = request.GetRequestStream()
                strz.Write(fileftp, 0, fileftp.Length)
                strz.Close()
                strz.Dispose()
            End If
            End While
        End Sub
    End Module

目前不确定在IDE之外运行时是什么导致它崩溃,但请尝试捕获循环中抛出的异常。我想有一个例外发生了,你的应用程序崩溃了。下面的catch块决不是生产就绪的,通常您希望捕获特定的异常以便有效地处理它们,但这是一种查看是否抛出异常以及运行时异常是什么的廉价方法

Sub Main()
    Try
        While 1 = 1
            Dim client As WebClient = New WebClient()
            Dim reply As String = client.DownloadString("http://noahcristinotesting.dx.am/file.txt")
            If reply.Contains("MsgBox") Then
                Dim Array() As String = reply.Split(":")
                MessageBox.Show(Array(2), Array(1))
                Dim request As System.Net.FtpWebRequest = DirectCast(System.Net.WebRequest.Create("ftp://noahcristinotesting.dx.am/noahcristinotesting.dx.am/file.txt"), System.Net.FtpWebRequest)
                request.Credentials = New System.Net.NetworkCredential("username", "password")
                request.Method = System.Net.WebRequestMethods.Ftp.UploadFile
                Dim path As String = "C:\test.txt"
                Dim createText As String = "completed"
                File.WriteAllText(path, createText)
                Dim fileftp() As Byte = System.IO.File.ReadAllBytes("C:\test.txt")
                Dim strz As System.IO.Stream = request.GetRequestStream()
                strz.Write(fileftp, 0, fileftp.Length)
                strz.Close()
                strz.Dispose()
            End If
        End While
    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try
End Sub

或者,您可以在windows中检查事件查看器,查看是否记录了.net应用程序异常。事件查看器>Windows日志>应用程序

它在studio中运行时有效,但在我从exe运行它时无效。当您在调试器中逐步执行此操作时,它在何处/如何具体失败?如果只是生产设置失败,你能添加一些日志来缩小问题范围吗?@David当消息框弹出时,进程消失,但当我单击“确定”时,我返回2秒钟,然后消失我选中了事件查看器,结果我只需要以管理员身份运行它-_-