Azure:缺少注册位置:订阅未在位置“YYYY”中为资源类型“XXXX”注册

本文关键字:注册 位置 XXXX YYYY 资源 类型 Azure | 更新日期: 2023-09-27 18:32:21

这最初是一个SubscriptionNotFound错误。

var dnsClient = new DnsManagementClient(new Microsoft.Azure.TokenCloudCredentials(result.AccessToken));
var zone = dnsClient.Zones.CreateOrUpdate("someresourcegroup", "mydomain.com", new Microsoft.Azure.Management.Dns.Models.ZoneCreateOrUpdateParameters {
        IfNoneMatch = "*",
        Zone = new Microsoft.Azure.Management.Dns.Models.Zone {
            Name = "mydomain.com",
            Location = "northeurope"
        }
    });

现在我已经解决了这个问题,这要归功于对原始问题的回复。它仍然是相同的代码,我已经使用以下 powershell 命令重新注册了该功能/提供程序:

Register-AzurermresourceProvider -ProviderNamespace Microsoft.Network

但这不需要位置参数,并且错误与位置中的资源有关。什么给?我尝试过使用"北欧"而不是"北欧",结果相同。

那么我错过了什么?似乎找不到有关此问题的任何数据,不是在这里,也不是在谷歌上。

完整的错误消息是:

缺少注册位置

:订阅未在位置"北欧"中的资源类型"dnszones"注册。请重新注册此提供商,以便访问此位置。

Azure:缺少注册位置:订阅未在位置“YYYY”中为资源类型“XXXX”注册

剛剛在嘗試通過Visual Studio 2015部署時收到此錯誤訊息。升级到最新的 Azure SDK v2.9.6 修复了此问题。

Azure DNS 是一项全局服务。请尝试将您的位置从 northeurope 更改为 global 。这应该可以修复错误。

var zone = dnsClient.Zones.CreateOrUpdate("someresourcegroup", "mydomain.com", new Microsoft.Azure.Management.Dns.Models.ZoneCreateOrUpdateParameters {
        IfNoneMatch = "*",
        Zone = new Microsoft.Azure.Management.Dns.Models.Zone {
            Name = "mydomain.com",
            Location = "global"
        }
    });

请参考: https://azure.microsoft.com/en-us/documentation/articles/resource-group-move-resources/

"必须为要移动的资源的资源提供程序注册目标订阅。否则,您将收到一条错误消息,指出订阅未注册资源类型。将资源移动到新订阅时,可能会遇到此问题,但该订阅从未与该资源类型一起使用。若要了解如何检查注册状态和注册资源提供程序,请参阅资源提供程序和类型。

扩张:

尽管该问题特定于 DNS 配置和有效位置(区域),但此答案实际上解决了标题中的错误消息。此错误的根本原因是在尚未注册(或支持)资源提供程序的位置创建资源。

就我而言,我发现我只能在特定区域中创建应用程序见解资源。指向资源提供程序的链接引导我找到此位置约束。如果在标题中看到此错误消息,请确保尝试创建的资源在给定位置有效。