我使用Azure表存储有一个非常奇怪的问题.我在Visual Studio 2012中有一个.NET 4.5项目,我处理所有Azure表存储功能.这个项目/ dll由另外两个项目引用,我的MVC网站和我的Azure工作者角色.(我在我的机器上的Azure Emulators下运行,但是当我将它部署到云时也会发生这种情况)
我保存或检索记录时调用以下函数:
internal static CloudTable GetTable(CloudStorageAccount storageAccount, string tableReference)
{
CloudTableClient tableClient = storageAccount.CreateCloudTableClient();
CloudTable table = tableClient.GetTableReference(tableReference);
table.CreateIfNotExists();
return tableClient.GetTableReference(table.Name);
}
Run Code Online (Sandbox Code Playgroud)
在我的MVC网站中,我有一个将记录保存到Azure存储表的功能,然后在我的Azure工作者角色中有一个将读取记录的服务.
因此,两者都使用相同的dll进行存储和检索,但是我的MVC项目在保存记录时没有问题,但是当我尝试检索记录时,我的Azure Worker角色服务在尝试执行"table.CreateIfNotExists()时抛出异常;".
无法加载文件或程序集"Microsoft.Data.OData,Version = 5.2.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35"或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
我已经做了以下事情:
我还没有将dll推回到5.2,因为我在其他项目中遇到太多问题,我使用的功能从5.3开始具体.
我目前正在5.5上运行所有的dll.
当我运行此处找到的AsmSpy.exe实用程序时,我得到以下输出,我不是100%确定如何解释.
> Reference: Microsoft.Data.Edm
> 5.5.0.0 by Microsoft.Data.OData
> 5.5.0.0 by Microsoft.Data.Services.Client
> 5.5.0.0 by Microsoft.WindowsAzure.ActiveDirectory.GraphHelper.2013_04_05
> Reference: System.Spatial
> 5.5.0.0 by Microsoft.Data.OData
> 5.5.0.0 by Microsoft.Data.Services.Client Reference: Microsoft.Data.OData
> 5.5.0.0 by Microsoft.Data.Services.Client …
Run Code Online (Sandbox Code Playgroud) 我最近尝试将网站部署到使用Azure存储的Windows Azure网站服务.部署后,我收到来自Storage SDK的以下错误,该错误似乎引用了尚不存在的程序集版本.我无法在任何地方找到此版本的DLL文件.有什么建议?
无法加载文件或程序集'Microsoft.Data.Services.Client,Version = 5.6.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.该系统找不到指定的文件.