У меня есть сценарий, который загружает файл, используя объект подключения HTTP.Эта задача скрипта является частью пакета, который вызывается другим пакетом.Иногда соединение не может быть установлено.В этих случаях я хочу повторить попытку подключения несколько раз, прежде чем, наконец, выдаст ошибку, если попытки подключения потерпят неудачу.
Я пытался реализовать это.Оказалось, работает, и задача не терпит неудачу.Однако событие OnError по-прежнему распространяется каждый раз, когда возникает исключение в задаче сценария, даже если задача сценария не завершается с ошибкой.Ошибка происходит, когда управление передается из дочернего пакета обратно в родительский пакет.
Public Sub Main()
Dim tryTimes As Integer = 0
Dim maxTimes As Integer = 4
While (True)
Try
Dim nativeObject As Object = Dts.Connections("HTTP Connection Manager").AcquireConnection(Nothing)
'Create a new HTTP client connection
Dim connection As New HttpClientConnection(nativeObject)
Dim filename As String = Dts.Variables("Working_File").Value
connection.DownloadFile(filename, True)
Dts.TaskResult = ScriptResults.Success
Exit While
Catch ex As Exception
If (tryTimes < maxTimes) Then
tryTimes = tryTimes + 1
Thread.Sleep(30000)
Else
MsgBox(ex.Message)
Dts.TaskResult = ScriptResults.Failure
Throw
End If
End Try
End While
End Sub
Я надеюсь получить решение, при котором событие OnError не вызывается, если попытки подключения не завершаются определенное количество раз,