You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ArmClient删除Azure BotService时返回版本无效错误

问题描述

使用ARM客户端删除Azure Bot服务时收到错误提示:version 2023-09-15-preview is invalid,涉事代码如下:

var resourceGroupId = "ResourceGroupId";
var azureBotName = "BotName";
var armClient = new ArmClient(new DefaultAzureCredential());
var resourceGroup = armClient.GetResourceGroupResource(resourceGroupId);
var bot = await resourceGroup.GetGenericResourcesAsync($"resourceType eq 'Microsoft.BotService/botServices' and name eq '{azureBotName}'");
bot.First().DeleteAsync(WaitUntil.Completed);

代码未做任何修改,此前可正常删除Bot服务,近期出现该错误。

问题原因

该错误源于GetGenericResourcesAsync方法默认使用的2023-09-15-preview预览版API已被Azure官方下线或不再支持。泛型资源查询不会自动适配目标资源的最新稳定API版本,而是依赖SDK内置的默认版本,当这个默认版本失效时就会触发错误。

解决方案

1. 使用Bot服务专用资源类型(推荐)

放弃泛型查询,直接获取BotServiceResource实例,SDK会自动使用对应资源的稳定版API:

var resourceGroupId = "ResourceGroupId";
var azureBotName = "BotName";
var armClient = new ArmClient(new DefaultAzureCredential());
var resourceGroup = armClient.GetResourceGroupResource(resourceGroupId);
// 获取Bot服务专用资源
var botService = resourceGroup.GetBotServiceResource(azureBotName);
// 执行删除
await botService.DeleteAsync(WaitUntil.Completed);

2. 手动指定有效稳定版API(泛型方法兼容方案)

若必须使用泛型查询,手动指定Azure Bot服务支持的稳定版API版本(如2022-09-15):

var resourceGroupId = "ResourceGroupId";
var azureBotName = "BotName";
var armClient = new ArmClient(new DefaultAzureCredential());
var resourceGroup = armClient.GetResourceGroupResource(resourceGroupId);
// 指定稳定版API版本
var bot = await resourceGroup.GetGenericResourcesAsync(
    filter: $"resourceType eq 'Microsoft.BotService/botServices' and name eq '{azureBotName}'",
    apiVersion: "2022-09-15");
await bot.First().DeleteAsync(WaitUntil.Completed);

3. 更新Azure .NET SDK版本

确保项目中Azure.ResourceManager.BotService NuGet包为最新稳定版,旧版本SDK可能内置已失效的预览版API默认值,更新后会自动适配最新有效版本。

内容的提问来源于stack exchange,提问作者Nick Murphy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:11:13