6

我正在尝试使用 Windows Azure Caching Preview

我有一个专用的缓存工作者角色,一个使用前缓存的 webrole,以及一个持续更新缓存的工作者角色。

我按照Windows Azure 指南中的说明进行操作,但仍然出现错误:

无法加载文件或程序集“Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

我将检查依赖项加倍三倍 1000000,有正确的。我注意到有两组 dll:我想使用的版本 1.0.0.0 和我不想要的另一组版本 101.0.0.0。我在所有 .config 文件中添加了BindingRedirect语句以将 101 个版本映射到 1.0.0.0 我检查了 \bin 文件夹,用 Jetbrains 反编译了 dll,它们是正确的。我开始失去耐心。为什么 .NET 在我放置显式路径时不采用我指定的 DLL?

4

3 回答 3

2

好的,我找到了另一种方法:我刚刚将 C:\Program Files\Microsoft SDKs\Windows Azure.NET SDK\2012-06\ref\Microsoft.ApplicationServer.Caching.Core.dll 重命名为 Microsoft.ApplicationServer.Caching.Core.dll_old。

这对我来说已经足够了。

这是对这个问题的更具体的描述:单独进行项目时,它似乎工作得很好:我有 3 个工作角色和一个 Web 角色。每次我一个一个地构建我的项目时,我在输出目录中看到了正确的dll,我只有Windows Azure Cloud包的问题,​​似乎忽略了BindingRedirect指令。

于 2012-08-21T09:12:17.097 回答
2

AppFabric 未设置为在安装后注册自己的 DLL。

您必须手动注册它们。在 powershell 中运行它来修复所有问题:

Set-location "C:\Program Files\AppFabric 1.1 for Windows Server"            
[System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")            
$publish = New-Object System.EnterpriseServices.Internal.Publish            
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.ApplicationServer.Caching.Core.dll")
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.ApplicationServer.Caching.Client.dll")
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.WindowsFabric.Common.dll")
$publish.GacInstall("C:\Program Files\AppFabric 1.1 for Windows Server\Microsoft.WindowsFabric.Data.Common.dll")             
iisreset
于 2016-03-01T22:51:03.493 回答
1

只是建议存储在相关位置。

我遇到了问题中描述的问题,唯一的区别是它找不到 Caching.Client 而不是 Caching.Core。我尝试按照先前答案中的建议删除 SDK ref 文件夹中的库,但没有帮助。

无论如何,我的解决方案似乎相当特别。

对我来说有帮助的是我发现了一些没有被引用的库,但是它们是在我的项目工作的唯一环境中的包中找到的。它们是:* System.Web.Providers.1.1 * System.Web.Providers.Core.1.0

由于某种原因,它们在 packages.config 文件中丢失,因此无法从 nuget 提要中更新它们。因此,您可以尝试直接引用它们或以其他方式使它们可供您尝试运行的项目访问。

于 2012-10-16T13:30:17.177 回答