3

SharePoint サーバー オブジェクト モデルを使用してファイルを追加したい (--> コードがサーバー上で実行される)。コードは機能するが、 と の呼び出しFiles.AddSPListItem.Update()非常に遅い

5 MB のファイルの場合、 への呼び出しにFiles.Add約 11 秒SPListItem.Updateかかり、メタデータを設定するための への呼び出しに約 4 秒かかります。

 private void UploadSimple()
        {
            var metadata = GetSalesArticleInsertDemoData();
            string fileName = "sample2.jpg";
            FileStream file = File.OpenRead(fileName);  

            using(SPSite site = new SPSite(SPURL))
            {
                using(SPWeb web = site.OpenWeb())
                {
                    SPList destinationList = GetListToBeUploadedIn(); // fast

                    SPFile fileDetails = destinationList.RootFolder.Files.Add("test000001.jpg", file, null, false); // slow

                    SPListItem newItem = fileDetails.ListItemAllFields;
                    FillListItemWithData(metadata, newItem); // fast, a few fields get filled with sample data

                    newItem.Update(); // slow                    
                }
            }
        }

クライアント オブジェクト モデルを介して同じファイルをアップロードし、メタデータを設定すると、約 9 秒で完了し、ここでファイルをネットワーク経由で転送する必要があります。

遅さの原因を知っている、または手がかりを持っている人はいますか?

4

0 に答える 0