Bene, il mio problema è che chiamare attende tabella.ExecuteAsync (...) nella tabella di archiviazione di Azure inserisce i dati richiesti, ma non finisce mai (non restituisce TableResult). Stesso caso con le operazioni InsertOrUpdate e Update. Ho anche provato diverse tabelle con un numero diverso di proprietà - lo stesso problema.Tabelle di archiviazione di Azure: attende table.ExecuteAsync (InsertOperation) viene eseguito, ma non termina mai
Quando chiamo table.Execute (...) - tutto funziona correttamente per ogni tipo di operazione.
Ecco il mio codice - semplice come quello:
chiamata esterna (si è posto in MVC controller in azione asincrona):
List<Task<ServiceResult<Boolean?>>> addPostTasks = new List<Task<Common.ServiceResult<bool?>>>();
foreach (var userStream in userStreams)
{
Task<ServiceResult<Boolean?>> addPostTask = postsStorageSvc.AddImagePost(...);
postsAddImagePostTasks.Add(addPostTask);
}
Task.WaitAll(addPostTasks.ToArray());
Metodo chiamato:
public async Task<ServiceResult<Boolean?>> AddImagePost(...)
{
ServiceResult<Boolean?> result = new ServiceResult<bool?>(null);
try
{
PostTableEntity newPost = new PostTableEntity(streamId.ToString(), Guid.NewGuid().ToString(), creatorId, date, htmlText);
TableOperation insertOperation = TableOperation.Insert(newPost);
//Following line never ends!
TableResult tableResult = await this._storageTableBootstrapper.Table.ExecuteAsync(insertOperation);
//Following line works perfect - but is not ASYNC
TableResult tableResult = this._storageTableBootstrapper.Table.Execute(insertOperation);
}
catch (Exception ex)
{
result.Result = false;
result.Errors.Add("AzurePostsStorageService Unexpected error: " + ex.Message);
}
return result;
}
Come stai chiamando questo metodo? –
Cosa intendi? Questo blocco di codice è in modalità asincrona, sto aggiornando la mia domanda per mostrare le linee circostanti. –
Mostra la firma del metodo e come la chiami. Lo stai forse bloccando usando 'Task.Result' o' Task.Wait'? –