سؤال

أنا أغمس أصابع قدمي في Windows Azure ، وأنا أواجه شيئًا يجب أن يكون بسيطًا ، لكنني لا أستطيع رؤيته.

لدي هذا الاختبار الصغير للعب مع قوائم قوائم Azure:

public void CanPublishSillyLittleMessageOnQueue()
{
    var queueClient = CloudStorageAccount.DevelopmentStorageAccount.CreateCloudQueueClient();
    var testQueue = queueClient.GetQueueReference("testqueue1");

    testQueue.CreateIfNotExist();
    var message = new CloudQueueMessage("This is a test");
    testQueue.AddMessage(message);

    CloudQueueMessage received;

    int sleepCount = 0;
    while((received = testQueue.GetMessage()) == null)
    {
        ++sleepCount;
        Thread.Sleep(25);
    }
    testQueue.DeleteMessage(received);

    Assert.Equal(message.AsString, received.AsString);
}

يرسل الرسالة على ما يرام - يمكنني رؤيتها في جدول SQL. ومع ذلك ، عندما يضرب طريقة "testqueue.deletemessage (المستلمة)" ، أحصل على هذا:

TestCase 'AzureExploratory.PlayingWithQueues.CanPublishSillyLittleMessageOnQueue'
failed: System.ArgumentNullException : Value cannot be null.
Parameter name: str
    at Microsoft.WindowsAzure.StorageClient.Tasks.Task`1.get_Result()
    at Microsoft.WindowsAzure.StorageClient.Tasks.Task`1.ExecuteAndWait()
    at Microsoft.WindowsAzure.StorageClient.TaskImplHelper.ExecuteImplWithRetry(Func`1 impl, RetryPolicy policy)
    at Microsoft.WindowsAzure.StorageClient.CloudQueue.DeleteMessage(CloudQueueMessage message)
    PlayingWithQueues.cs(75,0): at AzureExploratory.PlayingWithQueues.CanPublishSillyLittleMessageOnQueue()

الذي يبدو أنه فشل في مكان ما داخل الشجاعة في Azure SDK.

أنا أستخدم VS 2010 ، .NET 4.0 ، Azure SDK V1.2 ، 64 بت Win 7. خدمة متجر المطورين تعمل ؛ أستطيع أن أرى الرسائل تذهب إلى قائمة الانتظار ، لا يمكنني حذفها.

أي شخص رأى أي شيء مثل هذا؟

هل كانت مفيدة؟

المحلول

لقد اكتشفت ما يحدث. كان الكود المعني يعمل في تسخير اختبار Xunit. تبين أن عداء Xunit لا يقوم بإعداد AppDomain مع مسار ملف التكوين افتراضيًا. System.Uribuilder يضرب الآن ملف التكوين ، لذلك ينفجر.

كان الحل البديل هو إضافة app.config فارغ إلى مشروع الاختبار. الآن يعمل.

أرغ!

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