2012-08-14 13 views
6

Я пытаюсь использовать Windows Azure Caching Preview.Не удалось загрузить файл или сборку Microsoft.ApplicationServer.Caching.Core

У меня есть одна отдельная роль рабочего кэша, один веброль, который использует бывший кеш, и одну рабочую роль, которая постоянно обновляет кеш.

Я следовал за instructions on the Windows Azure guide, но я все еще получаю ошибку:

Не удалось загрузить файл или сборку 'Microsoft.ApplicationServer.Caching.Core, Version = 1.0.0.0, культура = нейтральной, PublicKeyToken = 31bf3856ad364e35' или одной из его зависимостей. Определение манифеста размещенной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

I двойная тройная 1000000 проверенных зависимостей, есть правильные. Я заметил, что было два набора DLL: те версии 1.0.0.0, которые я хочу использовать, а другая версия 101.0.0.0 я не хочу. Я добавил BindingRedirect заявление ко всем моим файлам .config для сопоставления 101 версий до 1.0.0.0 Я проверил папку \ bin, декомпилировал DLL с Jetbrains, они верны. Я начинаю терять терпение. Почему .NET не принимает DLL, которую я указываю, когда я помещаю явный путь?

+0

Хорошо, только вай я нашел, чтобы решить эту проблему: поиск всех ссылок на библиотеки DLL на моем жестком диске и заменить его с правильной копией. –

ответ

2

Ok я нашел еще один способ: Я просто переименовал C: \ Program Files \ Microsoft SDKs \ Windows Azure.NET SDK \ 2012-06 \ исх \ Microsoft.ApplicationServer.Caching.Core.dll к Microsoft.ApplicationServer.Caching .Core.dll_old.

Этого было достаточно для меня.

Вот более конкретное описание проблемы: она отлично работает при выполнении проектов по отдельности: у меня есть 3 роли рабочих и одна веб-роль. Каждый раз, когда я строю свой проект один за другим, я вижу правильную DLL в выходном каталоге, у меня только проблема с пакетом Windows Azure Cloud, она, похоже, игнорирует директиву BindingRedirect.

+0

Пожалуйста, выберите ответ как * * ответ (например, http://meta.stackexchange.com/a/65088/173356), он больше не будет перечислять вопрос среди вопросов без ответа. – Seki

1

Просто предложение для хранения в соответствующем месте.

Я столкнулся с проблемой, описанной в questiuon, только разница в том, что она не могла найти Caching.Client вместо Caching.Core. Я попытался удалить библиотеки в папку SDK ref, как это было предложено в предыдущем ответе, но это не помогло.

В любом случае, мое решение кажется довольно особенным.

Что мне помогло, так это то, что я нашел несколько библиотек, на которые не ссылались, но они были найдены среди пакетов в единственной среде, где работал мой проект. Вот они: * System.Web.Providers.1.1 * System.Web.Providers.Core.1.0

Они были пропущены в packages.config файл по какой-либо причине, чтобы они не могли быть возобновлены из NuGet кормов. Итак, вы можете попробовать связать их напрямую или иным способом, чтобы сделать их доступными для проекта, который вы пытаетесь запустить.

1

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 
Смежные вопросы