当我们尝试
GenerateToken
使用PowerBI API v2在RLS/应用程序拥有数据场景中获取嵌入令牌时,我们将得到以下响应:
{"error":{"code":"DMTS_MonikerNotFoundError","pbi.error":{"code":"DMTS_MonikerNotFoundError","parameters":{},"details":[]}}}
是否有人处理过这个问题并知道可能出了什么问题或如何理解更多信息,即,Power BI 中是否有某个地方可以让我看到日志以及这里发生了什么,以及 DMTS 代表什么?
我将如下 JSON 对象传递给
GenerateToken
调用:
{
"accessLevel": "View",
"datasetId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"identities": [
{
"username": "userx@mydomain.com",
"datasets": [
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
]
}
]
}
另一个观察结果是,如果我传入主帐户(我们在嵌入时连接到 Azure 的用户)而不是
userx@mydomain.com
,那么相同的代码可以正常工作,并且我们会获得嵌入令牌。
在 Power BI Sample 应用程序中,上述错误表现为:
Operation returned an invalid status code 'NotFound'<r><r>
at Microsoft.PowerBI.Api.V2.Reports.<GenerateTokenInGroupWithHttpMessagesAsync>d__16.MoveNext()
以防这对其他人有帮助。我现在对上面的问题有了更好的理解。
问题的根源似乎是,对于传入 API 请求的数据集,所有者是报告的发布者(它支持),而不是主帐户。
主帐户接管所有权后(您可以从 Power BI 门户 > 选择工作区 > 数据集 > 在感兴趣的数据集上,转到设置 > 接管),嵌入令牌已正确颁发。
在使用嵌入令牌呈现报告之前,传入的有效用户名似乎没有任何作用。
注意:我仍然不知道 DMTS 是什么意思,但问题现已解决。
我遇到了与此类似的问题。我有一份报告发布到我的个人工作区。当我意识到无法从个人工作区嵌入报告时,我创建了一个新工作区,然后将报告复制到该工作区。从门户查看报告时一切正常,但我在嵌入式应用程序中遇到了完全相同的错误。我没有意识到复制报告并不会复制数据源。数据源仍在我的个人工作区中,不允许嵌入访问。我最终从两个工作区中删除了报告和数据集,然后将其重新发布到我的共享工作区。完成此操作并将报告 ID 更改为新上传的报告 ID 后,一切工作正常。