Почему эта команда иногда генерирует исключения границ массива, когда она не содержит массивов - PullRequest
0 голосов
/ 20 мая 2019

У меня есть процесс, который перебирает массив, который представляет собой список имен файлов PDF, для каждого файла он должен написать шаблон PDF, который хранится в той же папке, что и исполняемый файл, и скопировать его в общий сетевой ресурс под именем "pdffilename". ~ 001.pdf, а затем скопируйте файл данных из корзины S3 в общую сетевую папку как «pdffilename» ~ 002.pdf. В некоторых случаях файл не существует, но нам все равно нужен разделитель, а иногда код просто записывает несколько разделителей (~ 001) и не содержит файлов данных, но когда это происходит, я случайно получаю сбои в записи разделителя pdf.

Это прекрасно работает при запуске на моем ноутбуке через VS, но когда я развертываю приложение на нашем сервере приложений, оно перестает работать, когда пропадает много файлов.

If sFile(0) <> "999-Envelopes" Then
    Try
        boxTriggerReqd = True
        My.Computer.FileSystem.CopyFile("doc_sep.pdf", OutputFolder & "\" & Replace(oFileName, "~002.pdf", "~001.pdf"), True)
        Log.writeline("Document Separator written:" & vbTab & OutputFolder & "\" & Replace(oFileName, "~002.pdf", "~001.pdf"))
    Catch ex As Exception
        Call EndTask(ex.Message, "Unable to transfer Document separator", 11)
    End Try
Else
    envTriggerReqd = True
End If
Try
    dlResponse = s3client.GetObject(GetFile)
    With dlResponse
        .WriteResponseStreamToFile(OutputFolder & "\" & oFileName)
        .Dispose()
    End With
    Log.WriteLine("Data file written:" & vbTab & vbTab & OutputFolder & "\" & oFileName)

Catch ex As Exception
    results.WriteLine(sFile(1))
    Call EndTask(ex.Message, targetFile, 12)
    results.Flush()
End Try

Журнал ошибок показывает

 ****** S3 PULL ******
 Index was outside the bounds of the array.
 Unable to transfer Document separator
 ****** S3 PULL ******

Там, где он вызвал EndTask, содержится «Невозможно передать разделитель документов», поэтому это произошло в одной из трех команд

Я предполагаю, что это команда CopyFile, но ни в одной из этих трех ссылок нет ссылки на массив. Возможно, это ошибка памяти на самом сервере?

...