2016-04-29 14 views
-1

バックグラウンドで実行され、サイトのページが変更されているかどうかを確認するプログラムがあります。それは一度動作し、メッセージボックスを表示しますが、私がもう一度それを変更しても何もしません。バックグラウンドプログラムがループしていない

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 
+0

これは、スタジオで実行しているときに動作しますが、exeファイルから実行すると動作しません。 – Noah

+0

これをデバッガでステップ実行すると、どこでどのように具体的に失敗しますか?本番環境でのみ障害が発生している場合は、問題を絞り込むためにいくつかのログを追加できますか? – David

+0

@Davidメッセージボックスがポップアップするとプロセスが消えますが、[OK]をクリックすると2秒後に消えてから消えます – Noah

答えて

1

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ログ>アプリケーション

+0

イベントビューアをチェックしたところ、管理者として実行する必要があります。-_- – Noah

関連する問題