Как решить ошибку Sharepoint CSOM HTTP Request 429?
Sharepoint часто отображает ошибку 429 (слишком много запросов), и мы уже предприняли все действия, описанные в статье ниже, но некоторые запросы продолжают блокироваться.
В нашем сценарии используется настраиваемое настольное приложение (надстройка) для Word, Excel, Power Point и Outlook, которое обращается к Sharepoint через CSOM (с учетными данными пользователя в сети), и мы уже зарегистрировали эту надстройку через "/_layouts/15/AppRegNew.aspx"и украсил все наши запросы"NONISV|{НАШЕ ИМЯ ОРГАНИЗАЦИИ}|{НАШЕ ИМЯ ДОБАВЛЕНИЯ}/1.0 ", как описано в:
https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/register-sharepoint-add-ins
0 ответов
Следуйте инструкциям в этой статье Microsoft:
https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/register-sharepoint-add-ins
После регистрации надстройки сделайте это при создании контекста SharePoint (с помощью CSOM):
private void Initialize()
{
this.SPCurrentContext = new ClientContext(this.Url);
if (string.IsNullOrWhiteSpace(this.Domain))
{
this.SPCurrentContext.Credentials = new SharePointOnlineCredentials(this.User, ParseToSecureString(this.Password));
}
else
{
this.SPCurrentContext.Credentials = new NetworkCredential(this.User, ParseToSecureString(this.Password), this.Domain);
}
this.RetryCount = Properties.Settings.Default.DefaultRetryCount;
this.RetryDelay = Properties.Settings.Default.DefaultRetryDelay;
this.NONISV = Properties.Settings.Default.ClientAppNONISV;
this.SPCurrentContext.ExecutingWebRequest += delegate (object sender, WebRequestEventArgs e)
{
e.WebRequestExecutor.WebRequest.UserAgent = this.NONISV; // This is the TRICK!!!
};
}
NONISV, используемый в качестве HTTP-заголовка User-Agent, должен быть примерно таким:
NONISV|{Название вашей компании}|{Имя вашей надстройки}/1.0
Как описано здесь. Удачи!