2012-08-14 41 views
6

Estoy tratando de usar Windows Azure Caching Preview.No se pudo cargar el archivo o ensamblado Microsoft.ApplicationServer.Caching.Core

Tengo un rol de trabajador de caché dedicado, un rollo web que usa el primer caché y un rol de trabajador que actualiza continuamente el caché.

he seguido el instructions on the Windows Azure guide pero aún así obtener un error:

No se pudo cargar el archivo o ensamblado 'Microsoft.ApplicationServer.Caching.Core, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' o una de sus dependencias. La definición del manifiesto del ensamblaje ubicado no coincide con la referencia de ensamblaje. (Excepción de HRESULT: 0x80131040)

I triple triple 1000000 dependencias comprobadas, son correctas. Noté que había dos conjuntos de DLL: los que quiero usar la versión 1.0.0.0, y otra versión 101.0.0.0 que no quiero. Agregué la declaración BindingRedirect a todos mis archivos .config para asignar 101 versiones a 1.0.0.0 Revisé la carpeta \ bin, descompilé los dlls con Jetbrains, son correctos. Empiezo a perder la paciencia. ¿Por qué .NET no toma la DLL que especifico cuando coloco la ruta explícita?

+0

Ok, la única WAI he encontrado para resolver este problema: Buscar todas las referencias de la DLL en mi disco duro y sustituirla por la copia correcta. –

Respuesta

2

Ok he encontrado otra manera: acabo C renombrado: \ Archivos de programa \ Microsoft SDKs \ Windows Azure.NET SDK \ 2012-06 \ ref \ Microsoft.ApplicationServer.Caching.Core.dll a Microsoft.ApplicationServer.Caching .Core.dll_old.

Fue suficiente para mí.

Aquí hay una descripción más específica de esta edición: parece funcionar perfectamente al tomar proyectos individualmente: tengo 3 roles de trabajador y un rol web. Cada vez que construyo mi proyecto uno por uno, veo el dll correcto en el directorio de salida, solo tengo un problema con el paquete de Windows Azure Cloud, parece ignorar la directiva BindingRedirect.

+0

Seleccione su respuesta como * la * respuesta (como la de http://meta.stackexchange.com/a/65088/173356), ya no incluirá la pregunta entre las preguntas sin contestar. – Seki

1

Solo una sugerencia para almacenar en un lugar relevante.

Me he encontrado con el problema descrito en la búsqueda, la única diferencia es que no pudo encontrar Caching.Client en lugar de Caching.Core. Traté de eliminar bibliotecas en la carpeta ref de SDK, como se sugirió en la respuesta anterior, pero no ayudó.

De todos modos, mi solución parece ser bastante particular.

Lo que ayudó en mi caso es que encontré algunas bibliotecas que no fueron referenciadas, pero se encontraron entre los paquetes en el único entorno donde funcionó mi proyecto. Aquí están: * System.Web.Providers.1.1 * System.Web.Providers.Core.1.0

Ellos se perdieron en el archivo packages.config por alguna razón, así que no podían ser renovados de alimentación Nuget. Así que puede tratar de hacer referencia a ellos directamente o de otra manera para que sean accesibles para el proyecto que está tratando de ejecutar.

1

AppFabric no está configurado para registrar sus propios archivos DLL después de la instalación.

Tienes que registrarlos manualmente.Ejecutar este en PowerShell para arreglar todo:

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 
Cuestiones relacionadas