У нас есть WCF, который загружает файлы в SharePoint один раз в день. Если имя файла содержит любые данные, которые не соответствуют некоторым данным в SharePoint, он отклоняется и переносится в отклоненную папку (и регистрирует это отклонение), в то время как принятые файлы загружаются в SharePoint.Вызов метода снова после задержки в WCF
Иногда отклоненные файлы отклонены «без причины» (не из-за несоответствия данных в SharePoint), возможно, ShP имеет какое-либо время простоя при работе WCF. Это вызывает некоторую путаницу (ожидаемая причина заключается в том, что имя файла не соответствует данным ShP, но нет).
Мы хотим, чтобы WCF снова попробовал отклоненные файлы с задержкой, затем снова запустил метод, если он терпит неудачу, тогда он должен быть перемещен (и зарегистрирован) в отклоненную папку.
ФОС вызов:
[OperationContract]
void ExecuteFileImport();
И метод ExecuteFileImport
//The files.AcceptedFiles have already sorted out the files that have correct file name format
//(eg. File1_20161010_version1.docx, it rejects the file if it has eg. File120161010_version1.docs)
foreach (var file in files.AcceptedFiles)
{
//..... Some logic to compare the file name to ShP list item data
try
{
this.SharePointHandler.AddFileToShPList(file, dataFromShPList);
}
catch (Exception ex)
{
response.ErrorMessages.Add(ex, file.fileName);
// Moves the file to rejected folder.
//Here (or in the try block) I want to try the AddFileToShPList again with delay if it fails
// (ShP down, patching, metadata service is down etc) before moving the file to rejected folder
}
}
Это случилось несколько раз, что, когда ШП в настоящее время пропатчен и WCF работает, он перемещает файлы в по этой причине.
Можно ли решить эту проблему?
Существуют ли два разных типа исключения для случаев, когда sharepoint не работает и когда файл не совпадает? – dotctor
Удален второй блок try – Robin