2017-02-20 26 views
-1

Я пытаюсь использовать очередь MS Windows Azure в службе Windows для чтения сообщений. Я получаю ниже ошибки при создании queuereference,Использование Azure Queue в службе Windows C#

Exception Информация: 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

Этот код работает на одном компьютере как для консольного приложения, так и для службы Windows? –

+1

Какое сообщение об исключении? –

ответ

0

Я пытаюсь использовать очереди MS Windows Azure в окнах службы для чтения сообщений. Я получаю ниже ошибки при создании queuereference

Я создаю простое приложение Windows Service и помещаю код в метод 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 Service и выполнить тот же тест с моим кодом, чтобы проверить, можете ли вы работать с сообщением очереди без ошибок. Кроме того, убедитесь, что имя очереди подтверждено these rules.