Azure ワーカー ロールでクライアントを初期化するために Microsoft.Azure.Documents ライブラリを取得する際に問題が発生しています。Nuget Package 0.9.1-preview を使用しています。
Azureドキュメントの例で行われたことを模倣しました
エミュレーターを介してローカルで実行すると、documentdb に正常に接続でき、期待どおりに実行されます。worker ロールで実行すると、一連の NullReferenceException が発生し、次に ArgumentNullException が発生します。
上で強調表示されている一番下の System.NullReferenceException には、このコール スタックがあります。
そのため、新しい DocumentClient でのこの呼び出しで nullReferenceExceptions が開始されます。
var endpoint = "myendpoint";
var authKey = "myauthkey";
var enpointUri = new Uri(endpoint);
DocumentClient client = new DocumentClient(endpointUri, authKey);
ローカルで実行する場合と、環境以外のワーカーロールで実行する場合とでは何も変わりません (明らかに)。
DocumentDb がワーカー ロールで動作するようになった人はいますか、それとも null 参照例外をスローする理由を知っている人はいますか? DocumentClient() に渡されるパラメーターが入力されます。
更新: より一般的なものに書き直そうとしました。これにより、少なくともワーカーロールを実行し、デバッガーをアタッチできるようになりました。新しい DocumentClient でエラーをスローしています。一部のセキュリティ パスが null のようです。初期化の必須パラメーターはどちらもヌルではありません。worker ロールが documentdb に接続できるようにするために変更する必要があるセキュリティ設定はありますか? (まだローカルで正常に動作します)
更新 2: インスタンスをリリース モードで実行できますが、デバッグ モードでは実行できません。つまり、誤って構成されたセキュリティ設定またはストレージ設定と関係があるに違いないと思いますか?
System.Security.SecurityExceptions を取得しているようです - The DocumentDb を使用している場合のみ - キューではそのエラーは発生しません。そのエラーのすべてのコール スタックは、System.Diagnostics.EventLog にあるようです。Intellitrace の概要で最初に確認した例外は、System.Threading.WaitHandleCannotBeOpenedException です。
詳細
Intellitrace サマリー例外データ:
上が最も古く、下が最新です (つまり、System.Security.SecurityException が最初に発生し、次に NullReference が発生します)。