在WCF延迟

时间:2016-04-28 12:03:58

标签: c# wcf sharepoint

我们有一个WCF,每天将文件上传到SharePoint一次。如果文件名包含与SharePoint中的某些数据不匹配的任何数据,则会将接受的文件上载到SharePoint时拒绝并移​​动到被拒绝的文件夹(并记录拒绝)。

有时拒绝的文件会被“拒绝”(不是因为与SharePoint中的数据不匹配),可能是因为ShP在WCF运行时有任何停机时间。这会引起一些混淆(预期的原因是文件名与ShP数据不匹配,但没有)。

我们希望WCF再次尝试拒绝的文件,然后再次运行该方法,如果失败,则应将其移动(并记录)到被拒绝的文件夹。

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

        }

}

有几次,当修补ShP并且WCF正在运行时,由于这个原因,它会将文件移动到被拒绝的文件夹。

这可以解决吗?

1 个答案:

答案 0 :(得分:0)

  1. 创建名为rejected.txt
  2. 的文件
  3. 将拒绝的文件名添加到服务器上的文件
  4. 处理文件名中列出的每个文件名,作为执行文件导入共享点的第一步