这最初是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
但是这不需要位置参数,错误是关于位置中的资源。是什么赋予了? 而且我试过“北欧”而不是“东北欧”,同样的结果。
那我错过了什么?似乎无法找到有关此问题的任何数据,不在此处,也不在Google上。
完整的错误消息是:
MissingRegistrationForLocation:未在“northeurope”位置为资源类型“dnszones”注册订阅。请重新注册此提供商以访问此位置。
答案 0 :(得分:8)
尝试通过Visual Studio 2015进行部署时收到此错误消息。升级到最新的Azure SDK v2.9.6修复了问题。
答案 1 :(得分:3)
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"
}
});
答案 2 :(得分:0)
请参阅:https://azure.microsoft.com/en-us/documentation/articles/resource-group-move-resources/
“必须为要移动的资源的资源提供程序注册目标订阅。如果没有,您将收到一条错误,指出订阅未注册资源类型。在将资源移动到资源时可能会遇到此问题新订阅,但该订阅从未与该资源类型一起使用。要了解如何检查注册状态并注册资源提供者,请参阅Resource providers and types.“
扩展:
虽然问题特定于DNS配置和有效位置(区域),但此答案实际上解决了标题中的错误消息。此错误的根本原因是在资源提供程序尚未注册(或支持)的位置创建资源。
就我而言,我发现我只能在特定区域创建 Application Insights 资源。 resource providers的链接让我找到了这个位置限制。如果您在标题中看到此错误消息,请确保您尝试创建的资源在给定位置有效。