【问题标题】:Sending message to Azure queue from WPF application从 WPF 应用程序向 Azure 队列发送消息
【发布时间】:2014-03-13 20:50:42
【问题描述】:

我正在尝试在 WPF 中创建一个 Windows 应用程序,该应用程序需要将消息发送到属于其他云应用程序的 Azure 队列。稍后,工作者角色将从队列中提取这些消息并对数据进行一些操作。

  • 是否有可能或者我必须使用具有 Web 角色的云应用程序?
  • 如果是的话,有人可以为我指出一个很好的阅读资源吗?
  • 如果不是,如何制作使用 Azure 队列的 Windows 可执行应用程序?

编辑:这是我的代码,我包含了这个:

using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.StorageClient;
using Microsoft.WindowsAzure.ServiceRuntime;


var storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
var queue = storageAccount.CreateCloudQueueClient();

我得到了这个例外:

SetConfigurationSettingPublisher needs to be called before FromConfigurationSetting can be used

我已尝试查找此异常,但没有找到正常的解决方案。每篇文章都在谈论一个天蓝色的云应用程序,而我正试图从 WPF 中做到这一点。

【问题讨论】:

    标签: c# wpf azure azure-storage-queues


    【解决方案1】:

    您可以从任何地方向 Azure 队列发送消息,只要您有适当的权限即可。我假设您在谈论存储队列(与服务总线队列相比):您需要存储帐户密钥或队列的共享访问签名。那时,您可以从任何您想要的应用程序中编写消息。

    只需创建队列客户端,创建您的消息,然后将消息添加到队列中。如果您的应用在本地、移动设备上或与存储队列的存储帐户不同的数据中心运行,则添加消息时会有一点延迟,否则,工作正常。

    【讨论】:

    • 当然你需要将 WindowsAzure.Storage 包从 NuGet 安装到你的 WPF 应用程序中;)
    • 问题在于您检索连接字符串的方式。查看this StackOverflow question / answer 了解更多信息。
    【解决方案2】:

    在朋友的帮助下,我设法让它工作了。这就是我所做的:

    添加了对System.Configuration 的引用以便使用ConfigurationManager

    添加到 App.Config:

    <appSettings> <add key="StorageConnectionString" value="UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://127.0.0.1:10001/"/> </appSettings>

    为了连接到本地存储帐户:

    CloudStorageAccount st = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"].ToString());

    希望它能帮助其他遇到同样问题的人!

    【讨论】:

      猜你喜欢
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-28
      • 1970-01-01
      • 2015-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多