Я написал программу мониторинга URL-адресов в vb, используя .net 4.0. В основном он устанавливает таймер, который проверяет URL каждые 60 минут, используя htpwebreques/httpwebresponse, и отправляет электронное письмо, если URL-адрес не работает. Однако память, используемая приложением, постоянно увеличивается каждый раз, когда URL проверяется. Это, очевидно, в конечном итоге вызовет проблему, так как приложение предназначено для постоянного мониторинга веб-сайта на предмет доступности, и в конечном итоге на компьютере мониторинга не хватит ресурсов.URL-монитор продолжает увеличивать использование памяти
Код для моей процедуры CheckURL ниже. Любые советы очень ценятся, спасибо заранее.
Private Sub checkURL()
Timer1.Stop()
Dim wReq As HttpWebRequest
Dim wResp As HttpWebResponse ' WebResponse
wReq = HttpWebRequest.Create(url)
wReq.Method = "HEAD"
Try
wResp = wReq.GetResponse()
If wResp.StatusCode = 200 Then
txtResponse.Text = wResp.StatusCode & ": " & wResp.StatusDescription & vbNewLine & "The " & siteName & " is up"
'Only send success results if specified
If sendOnFailure = False Then
sendResults = True
End If
Else txtResponse.Text = "There may be a problem with the " & siteName & vbNewLine & "Please verify manually that it is operational." & vbNewLine & "The response received was:" & vbNewLine & "Status Code: " & wResp.StatusCode & " - " & wResp.StatusDescription
sendResults = True
End If
wResp.Close()
wResp = Nothing
wReq = Nothing
Catch ex As Exception
txtResponse.Text = "There may be a problem with the " & siteName & vbNewLine & "The error returned was:" & vbNewLine & ex.ToString
sendResults = True
End Try
txtLastCheck.Text = Now.ToString("d MMM yyyy HH:mm")
setNextCheck()
End Sub
Запрос обертки в операциях 'Using', так как это гарантирует, что ваши объекты будут удалены. Прямо сейчас они не устраиваются. – Codexer
@ Zaggler спасибо, но я попытался добавить инструкцию using, но получить ошибки «Variable» wRes 'скрывает переменную в закрывающем блоке, а StatusCode не является членом WebResponse « – omicron