Мне дали работу по поддержке старой системы asp.net, которая использует веб-формы.Это достаточно болезненно, но кроме того, есть страница, которая извлекает все документы, связанные с клиентом, и выводит их на экран.Документы сохраняются в SharePoint.Основная проблема заключается в том, что в этом списке можно получить не более 30 документов, поэтому любой клиент, имеющий более 30, не видит все свои письма.Вторая проблема заключается в том, что я почти ничего не знаю о SharePoint, и это чужой код, поэтому я не знаю, с чего начать даже диагностировать эту проблему.Вот, что я думаю, это код для извлечения документов:
public List<SharepointDocument> ProcessListResults(XmlNode xml, string foldername)
{
List<SharepointDocument> docs = new List<SharepointDocument>();
SharepointDocument newdoc = null;
string namespaceURI = "http://schemas.microsoft.com/sharepoint/soap/";
string listNamespaceURI = "#RowsetSchema";
string directoryNamespaceURI = "urn:schemas-microsoft-com:rowset";
// Now associate with the xmlns namespaces (part of all XML nodes returned
// from SharePoint) a namespace prefix which we can then use in the queries
XmlNamespaceManager namespaceMngr = new XmlNamespaceManager(xml.OwnerDocument.NameTable);
namespaceMngr.AddNamespace("sp", namespaceURI);
namespaceMngr.AddNamespace("z", listNamespaceURI);
namespaceMngr.AddNamespace("rs", directoryNamespaceURI);
// Run the XPath query and return the result nodes
foreach (XmlNode row in xml.SelectNodes("//z:row[@ows_Title]", namespaceMngr))
{
newdoc = new SharepointDocument();
newdoc.Title = GetAttributeStringValue(row, "ows_Title");
newdoc.Modified = GetAttributeDateValue(row, "ows_Modified");
newdoc.Id = GetAttributeStringValue(row, "ows_UniqueId");
newdoc.Created = GetAttributeDateValue(row, "ows_Created_x0020_Date");
newdoc.ModifiedBy = GetAttributeStringValue(row, "ows_Editor");
newdoc.Filename = GetAttributeStringValue(row, "ows_FileLeafRef");
newdoc.DocumentStatus = (SharepointDocument.SharepointDocumentStatus)Enum.Parse(typeof(SharepointDocument.SharepointDocumentStatus), GetAttributeStringValue(row, "ows__ModerationStatus"));
newdoc.DocumentVersion = GetAttributeStringValue(row, "ows__UIVersionString");
if (UseRestrictedDownloadUrl)
{
string url = string.Format("download.aspx?Folder={0}&Filename={1}",
foldername, newdoc.Filename);
Console.Out.WriteLine("Attempting to create URL <" + url + ">");
newdoc.Url = url;
}
else
{
Console.Out.WriteLine("Attempting to create URL <" + SPSiteURL + GetAttributeStringValue(row, "ows_FileRef") + ">");
newdoc.Url = SPSiteURL + GetAttributeStringValue(row, "ows_FileRef");
}
docs.Add(newdoc);
}
logger.Debug("SharepointLibrary document count = " + docs.Count);
return docs;
}
Я не вижу здесь ничего, что могло бы вызвать эту проблему.Я подозреваю, что проблема должна быть с SharePoint - когда я вхожу в SharePoint, и на страницу писем пользователя (пользователь, который имеет более 30 букв), страница имеет 30 букв на страницу, и первая страница букв одинаковате, которые возвращаются веб-приложением.Это кажется слишком большим совпадением.Итак, как я могу диагностировать эту проблему в SharePoint?Кто-нибудь знает, что может быть причиной этого?Есть ли где-то в SharePoint параметр, о котором я не знаю?