gpt4 book ai didi

windows - 从 Azure 队列中删除消息时出现异常?

转载 作者:可可西里 更新时间:2023-11-01 11:39:38 24 4
gpt4 key购买 nike

我正在尝试 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。开发者商店服务正在运行;我可以看到消息进入队列,但无法删除它们。

有人见过这样的事情吗?

最佳答案

我知道发生了什么事。有问题的代码正在 xUnit 测试工具中运行。事实证明,xUnit 运行程序默认情况下没有设置带有配置文件路径的应用程序域。 System.UriBuilder 现在会访问配置文件,因此它会崩溃。

解决方法是向测试项目添加一个空的 app.config。现在可以了。

哎呀!

关于windows - 从 Azure 队列中删除消息时出现异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3674122/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com