从WPF应用程序向Azure队列发送消息

时间:2014-02-20 11:50:14

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

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

  • 是否可能或者我是否必须使用具有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

我试图查找此异常,但未找到正常的解决方案。每个帖子都在谈论一个azure云应用程序,而我正试图从WPF中做到这一点。

2 个答案:

答案 0 :(得分:1)

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

只需创建队列客户端,创建消息,然后向队列添加消息。如果您的应用程序在本地,移动设备或不同的数据中心运行,而不是存储队列的存储帐户,则在添加消息时会有一些延迟,但是,工作正常。 / p>

答案 1 :(得分:0)

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

添加了对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());

希望能帮助其他人解决同样的问题!