Pregunta

Tengo una biblioteca de clases que se comparte entre varios proyectos de rol en mi solución. Dos de estos proyectos son un rol web y un rol de trabajo.

Cada uno de ellos tienen el mismo ajuste de configuración:

<Setting name="QueueConnectionString" value="UseDevelopmentStorage=true" />

cada uno de ellos está haciendo una llamada a esta función:

public static void AddMessage(string Message)
    {
        var account = CloudStorageAccount.DevelopmentStorageAccount;
        ServicePoint queueServicePoint = ServicePointManager.FindServicePoint(account.QueueEndpoint);
        queueServicePoint.UseNagleAlgorithm = false;
        var client = account.CreateCloudQueueClient();
        var queue = client.GetQueueReference(DefaultRoleInstanceQueueName);
        queue.CreateIfNotExist();
        queue.AddMessage(new CloudQueueMessage(Message));
 }

Cuando esta se ejecuta en el rol de trabajo, funciona sin ningún problema; He confirmado adecuada lee y escribe los mensajes de la cola. Cuando se ejecuta en los roles web, la llamada a queue.CreateifNotExist () se bloquea con el error "La respuesta no está disponible en este contexto". He intentado buscar información sobre lo que podría ser la causa de esto, pero hasta ahora mis esfuerzos de búsqueda han sido infructuosos. Por favor, hágamelo saber si hay alguna información adicional que pueda incluir.

¿Fue útil?

Solución

ok, así que después de mucho trabajo, que determinó que era porque yo estaba llamando desde dentro de la Global.asax Application_Start.

Me trasladó a esta función de mi WebRole.cs OnStart () y funciona correctamente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top