在Windows服务中使用Azure队列c#

时间:2017-02-20 14:39:53

标签: azure azure-cloud-services azure-queues

我正在尝试在Windows服务中使用MS Windows Azure队列来阅读邮件。我在创建队列引用时遇到错误,

  

异常信息:Microsoft.WindowsAzure.Storage.StorageException      在Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync [[System.Boolean,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]](Microsoft.WindowsAzure.Storage.Core.Executor.RESTCommand` 1,Microsoft.WindowsAzure.Storage.RetryPolicies.IRetryPolicy,Microsoft.WindowsAzure.Storage.OperationContext)      在Microsoft.WindowsAzure.Storage.Queue.CloudQueue.CreateIfNotExists(Microsoft.WindowsAzure.Storage.Queue.QueueRequestOptions,Microsoft.WindowsAzure.Storage.OperationContext)

但是同一段代码可以作为控制台应用程序使用。

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(GetQueueSource);
        CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();
        CloudQueue queue = queueClient.GetQueueReference(QueueRef);
        queue.CreateIfNotExists(); //getting error at this point
        return queue;

1 个答案:

答案 0 :(得分:0)

  

我正在尝试在Windows服务中使用MS Windows Azure队列来阅读邮件。我在创建队列引用时遇到错误

我创建了一个简单的Windows服务应用程序,并将代码放在OnStart方法中,就像这样。

protected override void OnStart(string[] args)
{
    CloudStorageAccount storageAccount = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName={mystorageaccountname};AccountKey={account key}");

    CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

    CloudQueue queue = queueClient.GetQueueReference("myqueue");

    queue.CreateIfNotExists();

    CloudQueueMessage mes = new CloudQueueMessage("windows service mes");
    queue.AddMessage(mes);
}

当服务开始在我这边运行时,可以创建队列并将消息添加到此队列。我正在使用WindowsAzure.Storage v8.1.0和.NET framework 4.5。

<package id="WindowsAzure.Storage" version="8.1.0" targetFramework="net45" />

您可以创建一个新的Windows服务应用程序并使用我的代码执行相同的测试,以检查您是否可以无错误地操作队列消息。此外,请确保队列名称确认为these rules