[英]Azure Document Db Worker Role
我在获取Microsoft.Azure.Documents库以azure worker角色初始化客户端时遇到问题。 我正在使用Nuget Package 0.9.1-preview。
我模仿了天蓝色文档示例中的操作
通过模拟器在本地运行时,我可以与documentdb连接良好,并且可以按预期运行。 当以worker角色运行时,我得到了一系列NullReferenceException,然后是ArgumentNullException。
上面突出显示的底部System.NullReferenceException具有此调用堆栈
因此nullReferenceExceptions将从此调用中的新DocumentClient开始。
var endpoint = "myendpoint";
var authKey = "myauthkey";
var enpointUri = new Uri(endpoint);
DocumentClient client = new DocumentClient(endpointUri, authKey);
在本地运行它与在工作角色上运行(除了环境之外)之间没有任何变化(很明显)。
有没有人得到DocumentDb来充当工作者角色,还是有人知道为什么它会引发空引用异常? 传递给DocumentClient()的参数将被填充。
更新:我试图将其改写为更通用的名称,这至少有助于让worker角色运行并让我附加了调试器。 它在新的DocumentClient上引发错误。 似乎某些安全传递为空。 初始化时两个必需的参数都不为空。 我是否需要更改安全设置才能使工作角色能够连接到documentdb? (仍然可以在本地正常工作)
更新2:我可以让实例在发布模式下运行,但不能在调试模式下运行。 因此,这一定与某些安全性设置或存储设置配置错误有关。
看来我正在得到System.Security.SecurityExceptions-仅在使用The DocumentDb时-队列不会给我该错误。 该错误的所有调用堆栈似乎都与System.Diagnostics.EventLog有关。 我在Intellitrace摘要中看到的第一个异常是System.Threading.WaitHandleCannotBeOpenedException。
更多信息 Intellitrace摘要异常数据:
顶部是最早的,底部是最新的(因此,首先发生System.Security.SecurityException,然后是NullReference)
我摆脱安全异常和空引用异常的解决方案是禁用intellitrace。 完成此操作后,我便能够部署并附加调试器,并看到一切正常。
不确定intellitrace中的null和DocumentClient之间是什么,但希望它只是与nuget有关,它将在下一次迭代中修复。
无法复制。
我创建了一个新的工作者角色。 单实例。 已将authkey和endint配置添加到cscfg。
在WorkerRole类级别创建了私有静态DocumentClient
在OnStart中初始化DocumentClient在OnStop中处置DocumentClient
在RunAsync内部循环中,执行查询按预期运行。
在仿真器中进行测试。 部署为生产版插槽。 作品。 作为调试部署到通过远程调试登台。 作品。 将VS附加到CloudService,断点在循环内。
工作解决方案: http : //ryancrawcour.blob.core.windows.net/samples/AzureCloudService1.zip
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.