2014-12-04 105 views
0

我在获取Microsoft.Azure.Documents库以初始化Azure辅助角色中的客户端时遇到问题。我正在使用Nuget Package 0.9.1-preview。Azure文档Db工作者角色

我曾模仿什么在example for azure document

做当通过模拟器在本地运行,我可以用documentdb正常连接并运行正常。在worker角色中运行时,我得到一系列的NullReferenceException,然后是ArgumentNullException。

enter image description here

是上文所强调的底部System.NullReferenceException有这个调用堆栈 enter image description here

所以NullReferenceException异常在新DocumentClient此调用启动。本地运行它VS其他辅助角色,那么环境(显然)之间

var endpoint = "myendpoint"; 
var authKey = "myauthkey"; 
var enpointUri = new Uri(endpoint); 
DocumentClient client = new DocumentClient(endpointUri, authKey); 

没有什么变化。

有没有人得到DocumentDb工作的工作者角色或没有人有一个想法,为什么它会抛出空引用异常?传入DocumentClient()的参数已填充。

更新: 我试图重写它是更通用的,至少让工作者角色运行,让我连接调试器。它在新的DocumentClient上抛出错误。似乎有些安全传递为空。初始化时所需的参数都不为空。是否有需要更改我的工作者角色以便能够连接到我的documentdb的安全设置? (仍然工作在当地罚款)

更新2: 我可以得到实例在发布模式下运行,但没有调试模式。所以这肯定是某些安全设置或存储设置的错误配置,我猜?

看来我得到System.Security.SecurityExceptions - 只有在使用DocumentDb时 - 队列不会给我那个错误。所有调用堆栈的错误似乎与System.Diagnostics.EventLog。我在Intellitrace摘要中看到的第一个异常是System.Threading.WaitHandleCannotBeOpenedException。

更多信息 的IntelliTrace摘要异常数据: enter image description here enter image description here

顶部是最早和底部是最新的(所以System.Security.SecurityException首先发生则NullReference)

+0

你在哪里试图启动DocumentClient?在OnStart中,循环中运行同步? 另外,您的配置设置存储在哪里? 如果您部署到Azure,请确保配置设置位于正确的cscfg文件中(即不在app.config中) – 2014-12-05 02:13:00

回答

4

对我来说,解决方案摆脱了安全异常和空引用异常是禁用的IntelliTrace。一旦我这样做了,我就可以部署和附加调试器,并查看所有工作。

不知道intellitrace和DocumentClient中的null是什么,但希望它只是与nuget相关,它将在下一次迭代中得到修复。

+1

这为我修好了,6个月后还是个问题:( – 2015-06-05 06:08:02

3

无法摄制。

我创建了一个新的工作者角色。单个实例。将authkey & endoint配置添加到cscfg。在WorkerRole一流水平

初始化DocumentClient处理通信 处置DocumentClient在调用OnStop

在RunAsync内循环,

创建私有静态DocumentClient执行查询工作正常。

仿真器工作中的测试。 已部署为发布到生产槽。作品。 通过远程调试部署为调试到分段。作品。 将VS附加到CloudService,断点循环内。

工作液:http://ryancrawcour.blob.core.windows.net/samples/AzureCloudService1.zip

+0

这很奇怪,我仍然在您的解决方案中获得相同的行为。我所做的就是换掉Endpoint和AuthKey,然后在本地运行 - 工作正常。然后将其部署到分段,并且角色报告不健康,再次抛出System.Null。您使用的端点和authkey来自新portal.azure.com中documentdb的Keys面板?我会尝试从一个新的工作角色开始,看看在我的所有测试中是否有某些事情搞砸了。 – 2014-12-05 15:54:49

+0

也只是要提到,我可以让队列工作在该工作角色中,所以它必须与我的设置有关,无论是安全还是发布时。 – 2014-12-05 17:12:07

+0

是。我什么也没做。这真的很奇怪,为什么它只在调试失败。 – 2014-12-05 23:06:23

相关问题