Sharepoint 2010 загружает форму XML в библиотеку документов - PullRequest
0 голосов
/ 01 декабря 2011

Я пытаюсь загрузить документ XML, созданный из формы infopath 2010, в библиотеку документов.Код показан ниже

using (SPSite site = new SPSite(this.Context.Request.Url.AbsoluteUri))
                {  
                    sb.AppendLine("site URL : " + site.Url);
                    SPWeb web = site.RootWeb;
                    //SPWeb web = SPContext.Current.Site.RootWeb;
                    sb.AppendLine("Web URL : " + web.Url);      
                    SPDocumentLibrary docLib = web.Lists["Supplier Requests Library"] as SPDocumentLibrary;            
                    string destUrl = docLib.RootFolder.Url + "/" + countryName + "/" + supplierCategory + "/" + supplierNumber + " " + supplierName + ".xml";
                    sb.AppendLine("destination URL : " + destUrl);                      
                    web.AllowUnsafeUpdates = true;
                    SPFile destFile = docLib.RootFolder.Files.Add(destUrl.Trim(), document, true,"",false);
                    destFile.Update();
                    docLib.Update();           
                    web.AllowUnsafeUpdates = false;                     
                    sb.AppendLine("document uploaded successfully");
                }

Я получаю ошибку при отправке формы, но когда я проверяю библиотеку, мой документ XML успешно загружен.Ошибка была:

System.Threading.ThreadAbortException: Thread was being aborted.


at System.Threading.Thread.AbortInternal()
   at System.Threading.Thread.Abort(Object stateInfo)
   at System.Web.HttpResponse.End()
   at Microsoft.SharePoint.Utilities.SPUtilityInternal.SendResponse(HttpContext context, Int32 code, String strBody)
   at Microsoft.SharePoint.Utilities.SPUtility.HandleAccessDenied(HttpContext context)
   at Microsoft.SharePoint.Utilities.SPUtility.HandleAccessDenied(Exception ex)
   at Microsoft.SharePoint.Library.SPRequest.SetListProps(String bstrUrl, String bstrListName, Boolean bMigrate)
   at Microsoft.SharePoint.SPList.Update(Boolean bFromMigration)
   at SupplierWebService.SubmitFormData(Byte[] document)
System.Threading.ThreadAbortException: Thread was being aborted.
   at SupplierWebService.SubmitFormData(Byte[] document)
   at SupplierWebService.SubmitFromData(XmlDocument document)

Я выполнил код с повышенными привилегиями, чтобы преодолеть эту ошибку, и был успешным, но теперь в поле «Создано» отображается Системная учетная запись для каждого созданного документа, и я не могу отфильтровать данные для генерации.представление для отображения документов, созданных текущим вошедшим в систему пользователем.

Пожалуйста, предложите некоторые способы решения этой проблемы.Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 01 декабря 2011

Не звоните doclib.Update().Вы не меняете список метаданных , вы добавляете данные .

Кроме того, почему вы включаете небезопасные обновления?

0 голосов
/ 01 декабря 2011

Обычно это происходит, когда вы делаете перенаправление. Можете ли вы проверить, так ли это? Пример потока , если он содержит указатели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...