سؤال

لذلك لدي هذا التطبيق الذي يحتاج إلى الاستعلام عن كيانات من تخزين جداول Azure من الجداول التي لا أعرف مخططها.

1) هل هناك طريقة يمكنني القيام بذلك مع غلاف StorageClient؟
2) أنا أظن لا ، لذلك حاولت مع API REST وأحصل دائمًا على 403 محظورة عندما أستفسر عن الكيانات.

هذا هو الكود الخاص بي.

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("http://{0}.table.core.windows.net/Tables('{1}')", account,query));
request.UserAgent = " Microsoft ADO.NET Data Services";
request.KeepAlive = true;
request.Method = "GET";
request.Headers.Add("x-ms-version", "2009-09-19");
request.Headers.Add("x-ms-date", string.Format("{0} GMT", DateTime.UtcNow.ToString ("ddd, dd MMM yyyy HH:mm:ss")));
request.Headers.Add("Authorization", string.Format("SharedKey {0}:{1}", account, key));
request.Accept = "application/atom+xml,application/xml";
request.Headers.Add("Accept-Charset", "UTF-8");
request.Headers.Add("DataServiceVersion", "1.0;NetFx");
request.Headers.Add("MaxDataServiceVersion", "1.0;NetFx");

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
هل كانت مفيدة؟

المحلول

نعم يمكنك ان تفعلها. هناك إدخال جيد حول كيفية: http://social.msdn.microsoft.com/forums/en-us/windowsazure/thread/481afa1b-03a9-42d9-ae79-9d5dc33b9297/

إنه يعطي مثالًا جيدًا للرمز لذلك لن أشرحه. هذا الرمز إلى حد كبير ما أستخدمه في بلدي Azuretablequery مشروع لمعرفة خصائص الكيان. إذا نظرت إلى الرمز ، تحقق من generictableContext.cs و عام الطبقات

نصائح أخرى

طاولات Windows Azure قابلة للاستعلام عبر بروتوكول Odata (Odata.org). أسهل طريقة هي الحصول على PartitionKey و Rowkey من الكيان الذين يرغبون في الحصول على/تحديث/دمج/حذف.

جميع أمثلة REST موجودة (للاستعلام عن الجداول والكيانات):http://msdn.microsoft.com/en-us/library/dd179423.aspx

كانت مشكلتي الأولية بسبب حقيقة أن رأس الحجم التلقائي لم يكن صحيحًا.
كنت فقط أضف المفتاح وهناك في الواقع بعض الأشياء التي عليك القيام بها بالمفتاح ، وتوقيع سلسلة وإضافة ذلك إلى رأس الحجم التلقائي.
مزيد من المعلومات هنا.

فلماذا حددت إجابة جيسون على أنها صالحة؟ لأن افتراضاتي كانت خاطئة. هناك طريقة للاستعلام عن الكيانات في طاولات Azure الخاصة بك حتى لو كنت لا تعرف مخطط طاولاتك. وأظهرت وظيفة جيسون الطريق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top