C# 发布时未找到Azure SDK存储程序集异常
我尝试使用云服务和Azure SDK 2.9将演示应用程序发布到Windows Azure。在我的服务中,我有一个Web角色和一个Worker角色。两者都使用Azure存储。在本地主机(Emulator)上一切正常,但当我尝试发布应用程序时,在Web角色上出现以下错误: 未处理的异常:System.Runtime.Serialization.SerializationException,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
详细信息:异常:找不到程序集“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
有什么问题吗?两天后,我找到了解决这个问题的办法。 在我的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上看到了一个与此问题相同的问题:。似乎其他人也遇到了类似的问题。你可能想在那里提出一个问题。嗯。