Windows Azure - لا يمكن لدور الويب الوصول إلى تخزين قائمة انتظار التطوير المحلي

StackOverflow https://stackoverflow.com/questions/3639572

سؤال

لديّ مكتبة صفية تتم مشاركتها بين مشاريع الأدوار المتعددة في حلي. اثنان من هذه المشاريع هي دور ويب ودور العامل.

كل منهم لديه نفس إعداد التكوين:

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

يقوم كل منهم بإجراء مكالمة لهذه الوظيفة:

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));
 }

عندما ينفذ هذا في دور العامل ، فإنه يعمل دون أي مشاكل ؛ لقد أكدت القراءات المناسبة وتكتب رسائل قائمة الانتظار. عندما يتم تنفيذها في أدوار الويب ، تعطل المكالمة إلى قائمة الانتظار. لقد حاولت البحث عن معلومات حول ما يمكن أن يسبب هذا ولكن حتى الآن كانت جهود البحث غير مثمرة. يرجى إعلامي إذا كان هناك أي معلومات إضافية يمكنني تضمينها.

هل كانت مفيدة؟

المحلول

حسنًا ، بعد المزيد من العمل ، قررت أن السبب في ذلك هو أنني كنت أسميها من داخل Global.asax application_start.

لقد نقلت هذا إلى وظيفة webrole.cs OnStart () وهي تعمل بشكل صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top