我尝试使用Cloud Service和Azure SDK 2.9将演示应用程序发布到Windows Azure。在我的服务中,我有一个Web角色和一个Worker角色。两者都使用Azure存储。在本地托管(模拟器)上一切正常但是当我尝试发布应用程序时,我在Web角色上收到以下错误:
未处理的异常:System.Runtime.Serialization.SerializationException,
详细信息:异常:无法找到程序集“Microsoft.WindowsAzure.Storage,Version = 7.0.0.0,Culture = neutral,PublicKeyToken = 31bf385)
在Worker Role项目中,一切正常,它也在使用Storage。
我尝试将Web角色转换为标准Web应用程序,一切正常但我想在云应用程序上解决此问题。
我尝试了什么:
在我的VM上,我检查了bin文件夹,Microsoft.WindowsAzure.Storage存在。
任何想法有什么不对?
答案 0 :(得分:1)
两天后,我找到了解决该问题的方案。 在我的WebRole.cs中我有这个:
public override bool OnStart()
{
var csa = CloudStorageAccount.Parse(RoleEnvironment
.GetConfigurationSettingValue("Credentials"));
var cqc = csa.CreateCloudQueueClient();
var inputQueue = cqc.GetQueueReference("inputqueue");
inputQueue.CreateIfNotExists();
var outputQueue = cqc.GetQueueReference("outputqueue");
outputQueue.CreateIfNotExists();
var ctc = csa.CreateCloudTableClient();
var ct = ctc.GetTableReference("last");
ct.CreateIfNotExists();
return base.OnStart();
}
当我将此初始化移动到其他地方时,例如到RouteConfig.cs一切都很完美。我不知道为什么,但是每次从WebRole引用存储都会在发布到Azure后引发错误。 我希望这个解决方案有所帮助。