2016-04-28 2 views
0

У нас есть 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 работает, он перемещает файлы в по этой причине.

Можно ли решить эту проблему?

+0

Существуют ли два разных типа исключения для случаев, когда sharepoint не работает и когда файл не совпадает? – dotctor

+0

Удален второй блок try – Robin

ответ

0
  1. Создайте файл с именем rejected.txt
  2. Добавить отклоненные имена файлов в файл на сервере
  3. процесса каждое имя файла, перечисленных в имени файла в качестве первого шага при выполнении файла импорт в пункт обмена
Смежные вопросы