【发布时间】:2021-01-05 13:50:22
【问题描述】:
我正在尝试以编程方式将 Use in virtual machine creation 和 Allow public IP creation 设置为 Yes。我找到了正确的方法,这是我的代码:
var fragment = new VirtualNetworkFragment(
subnetOverrides: virtualNetwork.Subnets.Select(s =>
new SubnetOverrideFragment(
labSubnetName: s.Key,
resourceId: s.Value.Inner.Id,
useInVmCreationPermission: "Allow",
usePublicIpAddressPermission: "Allow")).ToList());
var vnet = await BaseClientFactory.CreateDevTestLabClient(azureClient)
.VirtualNetworks
.UpdateWithHttpMessagesAsync(dbLab.ResourceGroupName, dbLab.LabId.ToString(), virtualNetworkId, fragment);
不幸的是,代码不起作用,但它也没有抛出任何异常。当我序列化 fragment 变量以将其与在 Azure 上手动执行此操作时发送的请求进行比较时,存在细微差别。
以下是使用 NewtonsoftJson 序列化的主体在代码中的外观(我从 Watch 窗口中获取):
唯一的两个变化是我的代码生成了一个请求,其中 allowedSubnets 是 null 并且(更重要的是,我认为)我的代码生成 properties.subnetOverrides 而不是正确的 json 的方式略有不同结构体。我不确定这是一个错误还是我做错了什么 - 有什么想法吗?
【问题讨论】:
标签: c# azure asp.net-core azure-virtual-network azure-devtest-labs