use*_*722 13 azure azure-cosmosdb
我有相同的错误icrosoft.Azure.Documents.DocumentClientException:消息:{"错误":["所有者资源不存在"]},这是我的方案.当我将我的webapp部署到Azure并尝试从docDb获取一些文档时,它会抛出此错误.docdb存在于azure中,包含我要查找的文档.
奇怪的是,从我的本地机器(从VS运行),这工作正常.我在Azure和本地使用相同的设置.有人对此有所了解.
谢谢
Man*_*ddy 21
所有者资源不存在
当您提供错误的数据库名称时会发生.
例如,client.readDocument(..)在使用客户端是DocumentClient实例的情况下读取文档时,给出的数据库名称docLink是错误的.
这个错误肯定与读取不存在的数据库/集合/文档有关。对于确实存在的数据库,我遇到了同样的错误,但我输入的名称为小写,无论您的分区键如何,似乎都会发生此错误。
我现在能想到的最好的解决方案是包装
var response = await client.ReadDocumentAsync(UriFactory.CreateDocumentUri(database, collection, "documentid"));
Run Code Online (Sandbox Code Playgroud)
调用 try catch,不是很优雅,我更希望响应返回一些更多细节,但这就是 Microsoft 为您服务的。
像下面这样的东西应该可以解决问题。
Model myDoc = null;
try
{
var response = await client.ReadDocumentAsync(UriFactory.CreateDocumentUri(database, collection, document));
myDoc = (Model )(dynamic)response.Resource;
}
catch { }
if (myDoc != null)
{
//do your work here
}
Run Code Online (Sandbox Code Playgroud)
这是为了更好地了解错误,然后创建丢失的资源,这样您就不会再收到错误了。
在得出这个结论之前我必须浏览一些资源: https://github.com/DamianStanger/DocumentDbDemo
| 归档时间: |
|
| 查看次数: |
9578 次 |
| 最近记录: |