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(received)」メソッドにヒットすると、次のようになります。
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 を使用しています。開発者ストア サービスが実行されています。メッセージがキューに入ることはわかりますが、削除することはできません。
誰もこのようなものを見たことがありますか?