Я использовал решение GitHub для URLshortener и развернул его на своем клиенте Azure.Теперь внезапно я получаю сообщение об ошибке
"Exception while executing function: Functions.UrlIngest.
Microsoft.Azure.WebJobs.Host: Error while handling parameter keyTable after
function returned:. Microsoft.WindowsAzure.Storage: The remote server
returned an error: (412) Precondition Failed."
Во время исследования этой проблемы я нашел одну ссылку и написано, что
"If the entity's ETag differs from that specified with the update request,
the update operation fails with status code 412 (Precondition Failed). This
error indicates that the entity has been changed on the server since it was
retrieved. To resolve this error, retrieve the entity again and reissue the request."
Следовательно, чтобыЧтобы устранить эту проблему, я внес следующие изменения в код функции Azure
try
{
await tableOut.ExecuteAsync(operation);
}
catch (StorageException ex)
{
if (ex.RequestInformation.HttpStatusCode == (int)HttpStatusCode.PreconditionFailed)
{
log.Info("Precondition failure as expected.");
TableOperation retrieveOperation = TableOperation.Retrieve<NextId>(keyTable.PartitionKey, keyTable.RowKey);
// Execute the operation.
TableResult retrievedResult = tableOut.Execute(retrieveOperation);
int idCount = keyTable.Id;
// Assign the result to a CustomerEntity object.
keyTable = (NextId)retrievedResult.Result;
if (keyTable != null)
{
// Change the phone number.
keyTable.Id = idCount;
// Create the Replace TableOperation.
TableOperation updateOperation = TableOperation.Replace(keyTable);
// Execute the operation.
tableOut.Execute(updateOperation);
log.Info("Entity updated.");
}
else
{
log.Info("Entity could not be retrieved.");
}
}
}
И он по-прежнему выдает ту же ошибку, однако при проверке хранилища таблицы Azure у него правильные значения.
Может кто-нибудь помочь мне с этим?
Спасибо заранее.