问题描述
自2020年9月9日起,我们开始在REST API调用中获取奇怪的错误,以获取子站点及其列表的列表:
GET <site url>_api/web?$expand=webs,lists,AllProperties,ThemeInfo,SiteUsers,RoleDeFinitions&$select=*,webs/Url,lists/Id,lists/Title,lists/Description,lists/BaseType,lists/BaseTemplate,lists/Hidden,lists/Language,lists/ItemCount,lists/Created,lists/TemplateFeatureId,lists/CurrentChangetoken,SiteUsers/id,SiteUsers/Title,SiteUsers/LoginName,AllProperties/DesignPreviewThemedCssFolderUrl
API调用已经工作了几年,但是现在已经坏了,在我们的许多客户(不是全部,但大约30%)中,我们看到了此错误。
{"error":{"code":"-2147467261,System.ArgumentNullException","message":{"lang":"en-US","value":"Value cannot be null.Parameter name: key"}}}
现在,我们不需要任何参数“ key”,所以不确定为什么它为空,但是我发现如果删除了最后一部分
AllProperties/DesignPreviewThemedCssFolderUrl
请求现在看起来是:
GET <site url>_api/web?$expand=webs,SiteUsers/LoginName
然后此请求返回正确,没有任何错误
@Sharepoint团队,也许部署了一些新版本并引入了一些行为更改/错误? 请指教, 谢谢
解决方法
所以这可能是因为SharePoint中的URL长度最大限制。 SharePoint Online中的路径长度限制为400个字符。 SP 2013本地中的路径长度限制为255个字符。
尝试删除不必要的列或使用URL缩短程序来缩短URL。