I am running into a very odd issue the following call to Microsoft's Graph API hangs indefinitely, never finishing. This only happens when the process is invoked from a Swagger.
When called from Tests or anything else code works fine...
The code that is hanging up is below:
var usersResponse = await graphServiceClient.Users.GetAsync(requestConfiguration =>
{
requestConfiguration.QueryParameters.Filter = "accountEnabled eq true";
});
I have tried changing how I call the GetAsync method Synchronously - I have also tried the following, but the same issue persists:
var usersResponse = graphServiceClient.Users.GetAsync(requestConfiguration =>
{
requestConfiguration.QueryParameters.Filter = "accountEnabled eq true";
}).GetAwaiter().GetResult();
What can I do to avoid/fix this issue? I'd like to avoid completely refactoring again to use something other than a Swagger service invocation.
EDIT: A reproduceable sample of code is below, can confirm this is hanging for me when debugging locally:
[HttpGet]
[Route("api/CoreUserController/RunUserSyncTest")]
public void RunUserSyncTest()
{
string tenantId = "My Tenant Id";
string clientId = "My Client Id";
string clientSecret = "My Client Secret";
string[] scopes = new[] { "/.default" };
Azure.Identity.TokenCredentialOptions options = new Azure.Identity.TokenCredentialOptions
{
AuthorityHost = AzureAuthorityHosts.AzurePublicCloud
};
Azure.Identity.ClientSecretCredential clientSecretCredential = new Azure.Identity.ClientSecretCredential(tenantId, clientId, clientSecret, options);
Microsoft.Graph.GraphServiceClient graphServiceClient = new Microsoft.Graph.GraphServiceClient(clientSecretCredential, scopes);
var usersResponse = graphServiceClient.Users.GetAsync(requestConfiguration =>
{
requestConfiguration.QueryParameters.Filter = "accountEnabled eq true";
}).GetAwaiter().GetResult();
}