C# 发布时未找到Azure SDK存储程序集异常

C# 发布时未找到Azure SDK存储程序集异常,c#,asp.net,.net,azure,azure-storage,C#,Asp.net,.net,Azure,Azure Storage,我尝试使用云服务和Azure SDK 2.9将演示应用程序发布到Windows Azure。在我的服务中,我有一个Web角色和一个Worker角色。两者都使用Azure存储。在本地主机(Emulator)上一切正常,但当我尝试发布应用程序时,在Web角色上出现以下错误: 未处理的异常:System.Runtime.Serialization.SerializationException, 详细信息:异常:找不到程序集“Microsoft.WindowsAzure.Storage,版本=7.0.0

我尝试使用云服务和Azure SDK 2.9将演示应用程序发布到Windows Azure。在我的服务中,我有一个Web角色和一个Worker角色。两者都使用Azure存储。在本地主机(Emulator)上一切正常,但当我尝试发布应用程序时,在Web角色上出现以下错误:

未处理的异常:System.Runtime.Serialization.SerializationException,
详细信息:异常:找不到程序集“Microsoft.WindowsAzure.Storage,版本=7.0.0.0,区域性=中性,PublicKeyToken=31bf385”)

在Worker角色项目中,一切正常,它也在使用存储

我尝试将Web角色转换为标准Web应用程序,一切正常,但我想在云应用程序上解决这个问题

我所尝试的:

  • 将引用中的本地副本设置为true
  • 将.Net Framework更改为4.5.1和4.6(默认为4.5)
  • 删除并再次添加对存储的引用
  • nuget重新安装了所有库
  • 与Storage 7.0和6.2一起发布
  • 由VS和门户发布(包)
  • 已将dependentAssembly添加到web.config
在我的虚拟机上,我检查了bin文件夹Microsoft.WindowsAzure.Storage是否存在


有什么问题吗?

两天后,我找到了解决这个问题的办法。 在我的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,一切都正常工作。我不知道为什么,但在发布到Azure后,WebRole对存储的每次引用都会引发错误。
我希望此解决方案能有所帮助。

我在Github上看到了一个与此问题相同的问题:。似乎其他人也遇到了类似的问题。你可能想在那里提出一个问题。嗯。