У меня есть веб-служба, которая указывает на sharepoint 2013 Office 365. Я использую объектную модель клиента. Я пытаюсь обновить xml-файл, который хранит в нем 4 вложения. Когда я делаю это, когда у меня есть большие двоичные данные в файле XML, я получаю следующее сообщение об ошибке:Ошибка SharePoint: сервер не разрешает отправлять сообщения размером более 2097152 байт
Сообщение
The request message is too big. The server does not allow messages larger than 2097152 bytes.
Я понимаю, что я, вероятно, придется отделить вложения из файла XML, но в настоящее время моя инфо-форма хранит их там. Есть ли способ увеличить длину запроса или, может быть, сохранить или что-то еще. Я действительно просто модифицирую один узел, и он не будет работать, если я не обновляю xml. Благодарю . Код ниже.
Мой код:
ListItem docReq = GetDocRequestLight(docRequestID, businessID);
string fPath = (string)docReq["FileRef"];
using (FileInformation fInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(ctx, fPath))
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fInfo.Stream);
XmlNamespaceManager xmlNameSpaceMgr = new XmlNamespaceManager(xmlDoc.NameTable);
xmlNameSpaceMgr.AddNamespace("my", DocReqXmlNameSpace);
// Get Parent Node
XmlNode node = xmlDoc.SelectSingleNode(GetXPathFromItemKey(velmaKey), xmlNameSpaceMgr);
DateTime outDate;
bool outBool;
if (DateTime.TryParse(newValue, out outDate))
node.InnerText = outDate.ToString("yyyy-MM-dd");
if (Boolean.TryParse(newValue, out outBool))
node.InnerText = newValue;
// Update Statuses
XmlNode statusIDNode = xmlDoc.SelectSingleNode(DocReqStatusIDFieldXPath, xmlNameSpaceMgr);
statusIDNode.InnerText = updatedStatus.ID.ToString();
XmlNode statusNode = xmlDoc.SelectSingleNode(DocReqStatusFieldXPath, xmlNameSpaceMgr);
statusNode.InnerText = updatedStatus.Name.ToString();
// Save File
docReq.File.SaveBinary(new FileSaveBinaryInformation()
{
Content = Encoding.UTF8.GetBytes(xmlDoc.OuterXml),
});
ctx.ExecuteQuery();
Мне нужно было остановить службу таймера Sharepoint, ввести приведенный выше сценарий и снова запустить службу, чтобы эта работа работала. – Erwin
@ Erwin Я не могу вспомнить, что нужно это делать. Но я думаю, что это просто случайное поведение, которое нужно принимать при работе с SharePoint. В любом случае, спасибо за отзывы. – helb
Спасибо! Ты спас мне часы копания! :) – KiNG