Многие из моих вызовов Graph API время от времени истекают.
Это может произойти с любым вызовом API: от получения текущего профиля пользователя до получения документов SharePoint и т. д.
Я пробовал обновить Microsoft Graph API и зависимые пакеты Nuget до последних версий, но это не помогает. .
Для уточнения: это приложение является консольным приложением Windows. На стороне Azure оно зарегистрировано как собственное приложение. В качестве тестового приложения это однопоточное приложение. Никакого параллелизма, участвуют условия гонки. Логика кода так же проста, как
- Пользователь входит в систему.
- Программа делает вызов Graph API (показан в примере 1) для получения профиля пользователя и время ожидания этого вызова API.
eg 1.
eg р>
Код: Выделить всё
var currentUser = graphClient.Me.Request().GetAsync().Result;
Код: Выделить всё
var site = _graphClient.Sites[SharePointSiteId].Request().GetAsync().Result;
Нет несанкционированного исключения.
Я хочу знать, в чем может быть возможная причина и как этого избежать.
ОБНОВЛЕНИЕ:
Вот снимок экрана, когда происходит исключение.

ОБНОВЛЕНИЕ 2:
Я попробовал заменить все вызовы API на использование «await» непосредственно на дождитесь результатов. потому что этот пример кода представляет собой консольное приложение. Я ставлю
Код: Выделить всё
static void Main(string[] args)
{
// using Stephen Cleary's nuget package: Nito.AsyncEx.Tasks
MainImp().WaitAndUnwrapException();
}
static async Task MainImp()
{
// ...
// Graph API calls
< /code>
Это исключение все еще отказано от этого простого вызова API: < /p>
var currentUser = await graphClient.Me.Request().GetAsync();
Дополнительная информация: Код: тайм-аут
Вот полный стек вызовов
в Microsoft.Graph.HttpProvider.d__19.MoveNext()
--- Конец трассировки стека из предыдущего места, где было создано исключение --- в
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
Task) в
System.Runtime. CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
задача) в Microsoft.Graph.HttpProvider.d__18.MoveNext()
--- Конец трассировки стека из предыдущего места, где было создано исключение --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
задача) в
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
задача) at
Microsoft.Graph.BaseRequest.d__35.MoveNext()
--- Конец трассировки стека из предыдущего места, где было исключение брошен --- в
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
задача) в
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
задача) в Microsoft.Graph.BaseRequest.d__311.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at Microsoft.Graph.UserRequest.d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown --- at
System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task
task) at
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task
task) at System.Runtime.CompilerServices.TaskAwaiter< /code> 1.getresult ()
at sharepointconsoleapp.program.d__14.movenext () в
d: \ testprojects \ sharePointConsoleApp \ Program.cs: строка 133
--- Степенный трасса из предыдущего местоположения, где было выброшено исключение --- at
system.runtime.compilerservices.taskawaiter.throwfornonSuccess (задача
task) на
system.runtime.compilerservices.taskawaiter.handlenonSuccessAndeBuggerNotification (задача.
task) at
nito.asyncex.synchronous.taskextensions.waitandunwrapexception (задача
task) на sharepointconsoleapp.program.main (string [] args) в
d: \ testprojects \ SharePointConsoleapp \ Program.cs: Line 50 AT
System.Appdomain._NexeCuteAsSembly (runtimeasSembly Assembly, String []
args) на System.appdomain.executeaseSembly (строка Assemblyfile,
Assemblysecurity, String [String [String [String. ] args) at
microsoft.visualstudio.hostingprocess.hostproc.runusersassembly ()
at system.threading.threadhelper.threadstart_context (coame state)
at system. Threading.ExecutionContext.Runinternal (executionContext
executionContext, contextCallback обратный вызов, состояние объекта, boolean
reservyncctx) на
system.threading.excutioncontext.run (executionContext
executionContext, contextCallback, объект. состояние, boolean
beservesyncctx) at
system.threading.executioncontext.run (execution context
execution context, contextCallback Callback, Object Coment) at
System.Threading.Threadper.ThreadStart () /p>
< /blockquote>
Подробнее здесь: https://stackoverflow.com/questions/564 ... -exception
Мобильная версия