Forum Discussion
paulpascha
Apr 19, 2018Bronze Contributor
Inconsistent behavior in using Taxonomy API
We're currently developing a solution that involves several types of Taxonomy operations: Loading Terms Creating Terms (if not exist) Creating Term Labels (if not exist) Reusing Terms (if n...
Gabriel Smoljar
Oct 25, 2018Brass Contributor
I implemented the follow extension to get around the problem.
public static async Task ExecuteQueryRetry(this ClientContext clientContext, int delaySeconds = 2)
{
while (delaySeconds < 30)
{
try
{
clientContext.ExecuteQuery();
return;
}
catch (ServerException ex)
{
var retry = ex.Message != null ?
ex.Message.Contains("MetadataWebService.svc")
|| ex.Message.Contains("GetDefaultSiteCollectionTermStore") : false;
if (!retry)
{
throw;
}
var delay = TimeSpan.FromSeconds(delaySeconds);
await Task.Delay(delay);
delaySeconds = delaySeconds * 2;
}
}
throw new TimeoutException("Stopped retrying ExecuteQuery after 30 seconds.");
}