2010-09-03 33 views
2

我有一个在我的解决方案中的多个角色项目之间共享的类库。其中两个项目是Web角色和工作者角色。Windows Azure - Web角色无法访问本地开发队列存储

他们每个人都有相同的配置设置:

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

当这种执行辅助角色,它的工作没有任何问题;我已经确认正确读取和写入队列消息。当它在Web角色中执行时,对queue.CreateifNotExist()的调用会崩溃,并显示错误“响应在此上下文中不可用”。我试着搜索可能导致这种情况的信息,但到目前为止,我的搜索努力没有结果。如果有任何其他信息可以包括,请告诉我。

回答

6

好的,所以经过很多工作后,我确定是因为我是从Global.asax Application_Start内部调用它的。

我把它移到了我的WebRole.cs的OnStart()函数中,它工作正常。

相关问题