У меня есть процесс, который перебирает массив, который представляет собой список имен файлов 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, но ни в одной из этих трех ссылок нет ссылки на массив. Возможно, это ошибка памяти на самом сервере?