C# Graph SDK部署Intune设备合规政策遇路由匹配错误求助
解决Intune设备合规政策分配的Graph API路由错误
问题分析
你遇到的No method match route template错误,根源是DeviceCompliancePolicy的分配操作不支持直接通过Assignments.AddAsync添加——这和你之前成功部署的配置文件(DeviceConfiguration)的API设计存在差异。配置文件的Assignments支持直接POST添加单个分配,但合规政策需要通过专门的assign动作批量提交分配请求。
正确代码示例
替换你现有的代码为以下实现:
var policyID = "ID TO MY POLICY"; var groupID = "ID TO MY GROUP"; // 构造分配目标 var groupAssignmentTarget = new GroupAssignmentTarget { GroupId = groupID }; // 构造分配项 var policyAssignment = new DeviceCompliancePolicyAssignment { Target = groupAssignmentTarget }; // 用Assign动作提交分配请求 await client.DeviceManagement.DeviceCompliancePolicies[policyID] .Assign(new DeviceCompliancePolicyAssignments { Assignments = new List<DeviceCompliancePolicyAssignment> { policyAssignment } }) .Request() .PostAsync();
关键差异说明
- 配置文件(DeviceConfiguration)的分配:可以直接调用
Assignments.Request().AddAsync(),因为其API设计支持单个分配的POST操作。 - 合规政策(DeviceCompliancePolicy)的分配:必须通过
Assign()方法构造批量分配请求,再调用PostAsync()提交,这是Graph API对该资源的特定要求。
你已经验证过的policyID和groupID无需修改,只需调整调用方式即可解决路由不匹配的问题。
内容的提问来源于stack exchange,提问作者Jørgen Sundet
相关产品推荐
相关产品推荐

