postal - No se pudo cargar el archivo o el ensamblaje ''Microsoft.WindowsAzure.ServiceRuntime, Version=1.8.0.0 cuando se implementó en la nube
postal azure (3)
Por lo tanto, a partir de su captura de pantalla, parece que creó un sitio web (que no es un servicio en la nube o un rol web). Los ensamblajes Microsoft.WindowsAzure.Diagnostics y Microsoft.WindowsAzure.ServiceRuntime no se pueden usar en un sitio web.
Si desea crear una función web, abra Visual Studio> Archivo> Nuevo proyecto> Nube> Servicio en la nube de Windows Azure> Agregar una función web MVC> Aceptar. Una vez que haya terminado, haga clic derecho en el proyecto de Azure y elija Publicar . Esto le permitirá crear un nuevo servicio en la nube que contendrá su rol web. Y si creas un proyecto como este, podrás usar los ensamblados Microsoft.WindowsAzure.Diagnostics y Microsoft.WindowsAzure.ServiceRuntime .
Tengo una aplicación MVC 4 que se ejecuta correctamente localmente pero falla con este mensaje cuando se implementa en Azure:
[FileNotFoundException: Could not load file or assembly Microsoft.WindowsAzure.ServiceRuntime, Version=1.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'' or one of its dependencies. The system cannot find the file specified.] Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitor.GetDefaultStartupInfoForCurrentRoleInstance() +0 Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener..ctor() +40
Me he asegurado de hacer referencia a Microsoft.WindowsAzure.ServiceRuntime versión 1.8 y hacer que se copie localmente.
Verifique las referencias en su proyecto y asegúrese de que todas las referencias de Azure estén marcadas como Copiar Local = Verdadero. Además, dado que la aplicación está buscando la versión 1.8 de Runtime, obviamente está utilizando al menos un ensamblado de SDK 1.8 - C: / Archivos de programa / Microsoft SDKs / Windows Azure.NET SDK / 2012-10 / ref ... NOTA: 2012- 10 . A continuación, compruebe las versiones de referencia en uso:
- Diagnóstico: 1.8.0.0
- Tiempo de ejecución: 1.8.0.0
La falta de coincidencia de este ensamblaje generalmente ocurre porque tiene diferentes versiones de SDK a las que se hace referencia y / o sus referencias no están marcadas copy local = true.
En cuanto a la taxonomía de Azure, hay sitios web (en el portal debajo de los sitios web) y hay servicios en la nube que pueden tener ya sea WebRoles (sitios web, servicios wcf) o WorkerRoles (procesamiento de back-end).
Para CloudServices, la familia del sistema operativo y GuestOS se especifican en el archivo ServiceConfiguration.cscfg en el elemento "ServiceConfiguration":
<ServiceConfiguration serviceName="MyWebRole" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="3" osVersion="*" schemaVersion="2012-10.1.8">
osFamily 2 = Server 2008R2 y 3 = Server 2012. La osVersion especifica el GuestOS y casi siempre debería ser "*" para la última versión.
Si todo lo demás falla, y la DLL correcta se implementa en el contenedor, intente agregar una redirección de enlace de ensamblado en web.config:
<dependentAssembly>
<assemblyIdentity name="Microsoft.WindowsAzure.ServiceRuntime" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.8.0.0" newVersion="1.8.0.0" />
</dependentAssembly>
Ya que está recibiendo el error al intentar iniciar DiagnosticMonitor, ¿puede verificar que está haciendo referencia a la versión 1.8 de Microsoft.WindowsAzure.Diagnostics también?
Debe estar ubicado en C: / Archivos de programa / Microsoft SDKs / Windows Azure.NET SDK / 2012-06 / ref .