簡體   English   中英

Azure Document Db Worker角色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM