No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Crear un archivo en Blob a partir de cada Queue

21/22
Recursos

Aportes 4

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Muy buen contenido, excelente base para aplicar en los proyectos diarios.

Dato interesante: en las pruebas realizadas solo me dej贸 obtener bloques de hasta 30 registros. Cuando le pon铆a un n煤mero m谩s grande me marcaba este error:

Request Information
RequestID:45564c54-0003-0026-3712-710eb9000000
RequestDate:Thu, 26 May 2022 10:12:03 GMT
StatusMessage:One of the query parameters specified in the request URI is outside the permissible range.
ErrorCode:OutOfRangeQueryParameterValue
ErrorMessage:One of the query parameters specified in the request URI is outside the permissible range.
RequestId:45564c54-0003-0026-3712-710eb9000000
Time:2022-05-26T15:12:03.6753047Z

Buena clase

Este es el c贸digo que usamos en el clase pero me da error al final, ya revise el c贸digo varias veces

using System;
using System.IO;
using Microsoft.Extensions.Configuration;
using Microsoft.Azure.Storage;
using Microsoft.Azure.Storage.Queue;
using Microsoft.Azure.Storage.Blob;


namespace QueueConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                   .SetBasePath(Directory.GetCurrentDirectory())
                   .AddJsonFile("appsettings.json");
             IConfiguration config = new ConfigurationBuilder()
                   .AddJsonFile("appsettings.json",true,true).Build();
            CloudStorageAccount myClient = CloudStorageAccount.Parse(config ["ConectionString"]);
            CloudQueueClient queueClient = myClient.CreateCloudQueueClient();
            CloudQueue queue = queueClient.GetQueueReference("filaprocesos");
            CloudQueueMessage peekedMessage = queue.PeekMessage();
            CloudBlobClient blobClient = myClient.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference("contenedorregistros");
            container.CreateIfNotExists();
            foreach (CloudQueueMessage item in queue.GetMessages(20, TimeSpan.FromSeconds(100)))
            {
                string filePath = string.Format(@"log{0}.txt",item.Id);
                TextWriter tempFile = File.CreateText(filePath);
                var message = queue.GetMessage().AsString;
                tempFile.WriteLine(message);
                Console.WriteLine("Archivo Creado");
                tempFile.Close();

                using(var fileStream =System.IO.File.OpenRead(filePath))
                {
                    CloudBlockBlob myblob = container.GetBlockBlobReference(string.Format("log{0}.txt", item.Id));
                    myblob.UploadFromStream(fileStream);
                    Console.WriteLine("blob Creado");
                }

                queue.DeleteMessage(item);
            }
            Console.ReadLine(); 
        }    
    }
}

me aparece este erro:

Unhandled exception. Microsoft.Azure.Storage.StorageException: The specified queue does not exist.
at Microsoft.Azure.Storage.Core.Executor.Executor.ExecuteAsync[T](RESTCommand1 cmd, IRetryPolicy policy, OperationContext operationContext, CancellationToken token) at Microsoft.Azure.Storage.Core.Executor.Executor.<>c__DisplayClass0_01.<ExecuteSync>b__0()
at Microsoft.Azure.Storage.Core.Util.CommonUtility.RunWithoutSynchronizationContext[T](Func1 actionToRun) at Microsoft.Azure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand1 cmd, IRetryPolicy policy, OperationContext operationContext)
at Microsoft.Azure.Storage.Queue.CloudQueue.PeekMessages(Int32 messageCount, QueueRequestOptions options, OperationContext operationContext)
at Microsoft.Azure.Storage.Queue.CloudQueue.PeekMessage(QueueRequestOptions options, OperationContext operationContext)