gpt4 book ai didi

visual-studio-2013 - Windows Azure Queue - CloudQueue.GetMessage() 不适用于最新版本的 Microsoft.WindowsAzure.Storage (v5.0.0)

转载 作者:行者123 更新时间:2023-12-01 05:02:02 25 4
gpt4 key购买 nike

我是 Azure 的新手,正在试用教程 here .

本教程是关于利用 Web 角色将任务委派给工作角色在 Azure 上创建云服务。唯一重要的部分;当用户将图像上传到 Web 角色时,Web 角色会将图像放入 Azure 存储并在数据库中创建一个包含存储图像 URL 的字段的新记录。 Web 角色接下来在 Azure 队列中放置一条消息(新添加记录的 ID)。

var queueMessage = new CloudQueueMessage(id);
await _cloudQueue.AddMessageAsync(queueMessage);

Worker Role 然后将从队列中检索消息。接下来,从数据库中检索记录。然后从检索到的数据库记录的图像 url 创建缩略图。
while (true) {
var msg = _cloudQueue.GetMessage();
if (msg != null) {
CreateThumbnail();
}

System.Threading.Thread.Sleep(1000);
}

本教程提供指导
  • 下载解决方案源文件并从 Visual Studio 打开
  • 或使用 Visual Studio 从头开始​​创建解决方案

  • 使用下载的源文件时,该解决方案工作正常。在 worker 角色中, var msg = _cloudQueue.GetMessage(); .
    msg总是有一些东西(不为空),尽管在上传图像后有 3 到 4 秒的延迟。因此 CreateThumbnail()总是在图像上传后 3 到 4 秒执行。

    但是,如果我要从头开始创建解决方案, msg无论我等了多久和 CreateThumbnail 始终为空从未被处决。我通过在这里和那里放置断点来确保 Worker Role 确实在运行。

    问题的根源

    经过几个小时的辛苦工作,我将问题归结为组装 Microsoft.WindowsAzure.Storage .
    从教程页面下载的解决方案源文件使用的是 3.2.0 版本,而从头创建的解决方案使用的是 NuGet 的最新版本 5.0.0。换句话说, msg如果我使用的是 Microsoft.WindowsAzure.Storage 的最新版本 5.0.0,则始终为 null关于 worker 角色。这是一个已知问题还是我遗漏了什么。

    最佳答案

    很抱歉您在使用本教程时遇到了困难。我已经与教程的所有者核对过,它最近已更新(大约 9/1)。请下载新版本的 Visual Studio 解决方案并重试。

    有几件事情需要牢记,在 troubleshooting 中进行了概述。教程部分:

  • 将启动项目更改为 ContosoAdsCloudService
  • 以管理员身份运行 Visual Studio,并指定解决方案应使用完整计算模拟器而不是快速模拟器运行。

  • 从教程:

    默认情况下,新的云服务项目使用 Azure 计算模拟器 express 来模拟 Azure 环境。这是完整计算仿真器的轻量级版本,在某些情况下,完整仿真器可以在快速版本不工作时工作。

    若要将项目更改为使用完整模拟器,请右键单击 ContosoAdsCloudService 项目,然后单击“属性”。在“属性”窗口中,单击“Web”选项卡,然后单击“使用完整模拟器”单选按钮。

    为了使用完整的模拟器运行应用程序,您必须以管理员权限打开 Visual Studio。

    关于visual-studio-2013 - Windows Azure Queue - CloudQueue.GetMessage() 不适用于最新版本的 Microsoft.WindowsAzure.Storage (v5.0.0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32023795/

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