我正在使用 API:https://management.azure.com/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Compute/images/{imageName}?api-version= 2019-03-01
删除图像。这是代码(该代码在图像列表的循环中执行):
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + accessToken); //obtained from https://management.azure.com/
client.BaseAddress = new Uri(BaseManagementUri); //https://management.azure.com/
using (var responseGet = client.DeleteAsync(api).Result)
{
if (responseGet.IsSuccessStatusCode) //returns true and status code is 202
{
log.LogInformation($"Deleted {resourceUri}");
}
else
{
log.LogWarning($"Failed to deleted {resourceUri}\n{responseGet.Content.ReadAsByteArrayAsync().Result}");
}
}
}
responseGet 包含:StatusCode:202、ReasonPhrase:“已接受”、版本:1.1、内容:System.Net.Http.HttpConnection+HttpConnectionResponseContent
、StatusCode:已接受
.
当我检查 Azure 门户或 GET
list of images using REST API 时,我可以看到图像仍然存在。
但是,当我运行相同的代码来删除快照时,它会成功删除。我对快照使用相同的 API,如下所示:https://management.azure.com/subscriptions/{subId}/resourceGroups/{rgName}/providers/Microsoft.Compute/snapshots/{snapshotName}?api -version=2019-03-01
.
删除图片该怎么办?
最佳答案
不同的REST API会返回不同的结果,当您收到202(已接受)
时,操作不会立即完成,您需要调用另一个API(如下所示)来检查进度。
GET https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Compute/locations/{region}/operations/{operation-id}?api-version=2016-03-30
请检查此文档 - Track asynchronous Azure operations
还有这个sample ,也是 similar issue here .
关于c# - 即使在 C# 中使用 REST API 获取成功状态代码后,图像也不会在 Azure 中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59243084/