Недавно мы сделали новую регистрацию приложений, точно такую же, как и предыдущие регистрации приложений.И мы столкнулись с проблемой использования Microsoft.Office365.Discovery v1.0.22 библиотеки обнаружения службы NuGet для API-интерфейсов Office 365.
Исключение типа "Microsoft.Office365.Discovery.DiscoveryFailedException"был брошен в Microsoft.Office365.Discovery.DiscoveryClient.d__4.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение --- \ r \ n
в системе.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) \ r \ n
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) \ r \ n
в обнаружении Microsoft.Office365.MoveNext () \ r \ n --- Конец трассировки стека из предыдущего местоположения, в котором было сгенерировано исключение --- \ r \ n
в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача задачи) \ r \ n
в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) \ r \ n
в System.Runtime.CompilerServices.TaskAwaiter`1.GetResult () \ r \ n
Код
var result = new Dictionary<String, AuthenticationResult>();
ClientCredential credential = new ClientCredential(clientId, clientSecret);
AuthenticationContext authContext = new AuthenticationContext(string.Format("{0}/{1}", "https://login.windows.net", tenantId));
//authenticate discovery so we can auth all endpoints
var discoveryAccess = authContext.AcquireTokenByAuthorizationCode(authorizationCode, redirectUri, credential, m_sDiscoverySvcResourceId);
result.Add(m_sDiscoverySvcResourceId, discoveryAccess);
//discover endpoints
try
{
DiscoveryClient discClient = new DiscoveryClient(m_uriDiscoverySvcEndpointUri, () => { return discoveryAccess.AccessToken; });
var services = await discClient.DiscoverCapabilitiesAsync();
foreach (var service in services)
{
var srvId = service.Value.ServiceResourceId;
result[srvId] = discoveryAccess;
}
}
catch (DiscoveryFailedException e)
{
Debugger.Break();
}
return result;
тот же код работает хорошо с ранее созданными регистрациями приложений.Цени любую помощь