Exportar (0) Imprimir
Expandir todo
Este tema aún no ha recibido ninguna valoración - Valorar este tema

Solución de problemas de errores y advertencias de validación del paquete

Actualizado: mayo de 2013

Al crear un paquete o publicar su aplicación de Windows Azure, podrían aparecer una o varias advertencias o errores. Estas advertencias y errores pueden ayudarle a identificar y corregir problemas que impedirían que se implemente o publique la aplicación. Si recibe una advertencia o error en la fase de empaquetado, puede ahorrar tiempo si corrige estos problemas antes de implementar su aplicación de Windows Azure. No tiene que esperar a que se complete la implementación y, a continuación, que se produzca un error de implementación.

De forma predeterminada, los problemas de validación del paquete se tratan como advertencias y no impiden la implementación de su rol. Para cambiar el valor predeterminado y evitar la implementación, establezca la propiedad Tratar advertencias como errores en true para su proyecto de Windows Azure. Vea Cómo: Configurar un proyecto de Windows Azure con Visual Studio.

En la siguiente tabla se muestran las advertencias clave para la validación del paquete de una aplicación de Windows Azure y un vínculo a más detalles para cada advertencia.

 

Número de error

Mensaje

Más información

WAT150

El proyecto 'ProjectName' depende del siguiente ensamblado: 'AssemblyName'. Este ensamblado no está en el paquete. Para asegurarse de que se inicia el rol, agregue este ensamblado como una referencia al proyecto y establezca la propiedad Copy Local en true.

Incluir archivos en el paquete del servicio

WAT151

El proyecto '<nombre del proyecto>' depende del siguiente ensamblado: '<nombre del ensamblado>'. Este ensamblado no está en el paquete y se debería instalar en la GAC. Para asegurarse de que se inicia el rol, agregue este ensamblado como una referencia en el proyecto y establezca la propiedad Copy Local en true. A continuación, utilice una tarea de inicio para que el rol agregue el ensamblado a la GAC.

WAT152

El proyecto '<nombre del proyecto>' depende del siguiente ensamblado: '<nombre del ensamblado>'. Este ensamblado se instala en la GAC por medio de un archivo Windows Installer (archivo .msi). Para asegurarse de que se inicia el rol, debe instalar este archivo Windows Installer mediante una tarea de inicio de su rol o agregar este ensamblado como una referencia en el proyecto y establecer la propiedad Copy Local en true.

WAT153

El proyecto web '<nombre del proyecto>' depende del siguiente ensamblado MVC: <nombre del ensamblado>. Estos ensamblados se deben agregar al paquete o instalar en la máquina virtual de su rol. Para obtener más detalles sobre esto, vea la siguiente página de ayuda: http://go.microsoft.com/fwlink/?LinkId=218227.

Publicar un proyecto MVC como un rol web

WAT160

El proyecto '<nombre del proyecto>' contiene el siguiente ensamblado: '<nombre del ensamblado>'. Este ensamblado no es compatible con la arquitectura de procesador de 64 bits utilizada por IIS en Windows Azure. Para asegurarse de que se inicia el rol, debe reemplazar este ensamblado por uno que sea compatible con esta arquitectura.

Si tiene una tarea de inicio para configurar IIS para que ejecute aplicaciones de 32 bits, puede omitir este mensaje de advertencia. Para obtener más información sobre cómo hacerlo, vea Habilitar modo de aplicación de 32 bit en el grupo de aplicaciones IIS utilizando una tarea de inicio.

De lo contrario, quite el ensamblado de su proyecto y agregue un ensamblado que sea compatible con la arquitectura del procesador de 64 bits. A continuación vuelva a empaquetar o publique la aplicación.

WAT170

El valor de configuración '<nombre de valor de configuración>' se establece para que utilice el emulador de almacenamiento local del rol '<nombre de rol>' en el archivo de configuración '<nombre de archivo>'. Para tener acceso a los servicios de almacenamiento de Windows Azure, debe proporcionar una cadena de conexión de almacenamiento de Windows Azure válida.

Para obtener más información sobre cómo agregar una cadena de conexión de almacenamiento de Windows Azure válida, vea Configurar servicios necesarios para publicar un servicio en la nube desde Visual Studio.

WAT180

Se produjo un error en la creación del paquete porque hay errores de validación. Debe corregir los errores, o puede establecer la propiedad "Tratar advertencias como errores" en false para este proyecto de Windows Azure.

Para obtener más información sobre cómo establecer la propiedad Tratar advertencias como errores, vea Cómo: Configurar un proyecto de Windows Azure con Visual Studio.

WAT190

El proyecto '<nombre del proyecto>' tiene como destino '<versión de .NET Framework>'. Para asegurarse de que se inicia el rol, esta versión de .NET Framework se debe instalar en la máquina virtual de este rol. Puede utilizar una tarea de inicio para instalar la versión necesaria, si aún no está instalada como parte del SO invitado de Windows Azure.

Use una tarea de inicio para que un rol instale una versión de .NET Framework.

WAT230

La cadena de conexión 'DefaultConnection' está utilizando una base de datos local '.\SQLEXPRESS' en el proyecto '<nombre del proyecto>'. Esta cadena de conexión no funcionará al ejecutar esta aplicación en Windows Azure. Para tener acceso a una base de datos diferente, debería actualizar la cadena de conexión en el archivo web.config. Para obtener más detalles sobre esto, vea la siguiente página de ayuda: http://go.microsoft.com/fwlink/?LinkId=224877

Utilizar una base de datos de SQL Azure con los proveedores universales de ASP.NET

Si no se inicia un rol, debería comprobar la ventana de salida de implementación/compilación del paquete para comprobar que no existe ninguna advertencia o error de validación. También puede configurar una conexión de escritorio remoto al publicar su aplicación para permitir tener acceso a la máquina virtual y diagnosticar cualquier problema. Para obtener más información sobre cómo utilizar el escritorio remoto para Windows Azure, vea Usar Escritorio remoto con los roles de Windows Azure.

Otro enfoque para determinar por qué no se inicia un rol es habilitar IntelliTrace para su implementación. Para obtener más información sobre cómo habilitar IntelliTrace para una aplicación de Windows Azure, vea Depurar con IntelliTrace y Visual Studio un servicio en la nube.

Para obtener ayuda para solucionar otros problemas de errores de rol, vea Troubleshooting Roles that Fail to Start.

Crear una tarea de inicio para un rol

Cuando se crea un rol en una máquina virtual, puede que desee agregar una tarea de inicio que se ejecute una vez creada la máquina virtual y antes de que se inicie el rol. Esta tarea se asegura de que el rol se puede iniciar correctamente. Por ejemplo, podría desear hacer una de las siguientes tareas:

  • Instalar un archivo Windows Installer.

  • Agregar un ensamblado a la GAC.

  • Instale una versión concreta de .NET Framework que se requiere para el rol.

Las tareas de inicio que agregue a un rol se ejecutan desde la línea de comandos. Puede crear un archivo por lotes para que ejecute un conjunto de comandos o agregar comandos concretos que desee ejecutar. Agregue los archivos de la tarea de inicio a su proyecto para que se instalen cuando se implemente el paquete del servicio. A continuación, se ejecuta la tarea de inicio utilizando estos archivos después de crear la máquina virtual de ese rol.

ImportantImportante
Si sus archivos de su tarea de inicio están en un subdirectorio, su tarea de inicio puede necesitar acceso al directorio del archivo por lotes cuando los comandos se ejecuten en la máquina virtual. Puede utilizar la siguiente variable para tener acceso al directorio del archivo por lotes: %~dp0. Observe que esta variable contiene la unidad y ruta de acceso del archivo por lotes y agrega una barra diagonal inversa al final de la ruta de acceso. Por ejemplo, podría utilizar el siguiente comando para ejecutar un archivo .exe (StartUp.exe) que se encuentra en la misma carpeta que el archivo por lotes: %~dp0StartUp.exe.

Para crear una tarea de inicio para un rol

  1. (Opcional) Puede crear un archivo por lotes si desea ejecutar un conjunto de comandos juntos para su tarea de inicio. El archivo que crea para ejecutar una tarea de inicio no debe incluir una marca de orden de bytes. Para evitar este problema, puede crear su archivo para que ejecute su tarea de inicio mediante el bloque de notas, o asegurarse de que guarda un archivo creado en Visual Studio con codificación. Para guardar un archivo en Visual Studio con codificación, utilice los siguientes pasos:

    1. Para guardar un archivo en Visual Studio con codificación, asegúrese de que el archivo se muestra en la ventana del editor de Visual Studio. En la barra de menús elija Archivo, Guardar <Filename> como.

      Se muestra el cuadro de diálogo Guardar archivo como.

    2. Para guardar el archivo con codificación, elija la flecha de lista desplegable en el botón Guardar y elija Guardar con codificación.

      Se muestra el cuadro de diálogo Opciones avanzadas para guardar.

    3. En la lista Codificación elija Unicode (UTF-8 con firma) - Página de códigos 65001 y, a continuación, elija el botón Aceptar.

  2. Para agregar una carpeta para su tarea de inicio, cree una carpeta en el proyecto para el rol que necesita una tarea de inicio. Por ejemplo, si es un proyecto de rol web denominado WebRole1 que requiere instalar un archivo Windows Installer, agregue una carpeta denominada Startup en este proyecto de rol web.

  3. Para agregar los archivos a esta carpeta, abra el menú contextual de la carpeta y elija Agregar, Elemento existente. Elija los archivos necesarios para la tarea de inicio, incluido cualquier archivo por lotes y, a continuación, elija el botón Agregar.

    Los archivos se muestran en el Explorador de soluciones debajo de la carpeta que creó.

  4. Para incluir estos archivos en su paquete del servicio sin intentar compilar estos archivos, abra el menú contextual de cada archivo y elija Propiedades. En la vista Propiedades, en la lista desplegable Acción de compilación elija Ninguna y en la lista desplegable Copiar en el directorio de resultados elija Copiar si es posterior.

  5. Para agregar la tarea de inicio a su rol, abra el menú contextual del archivo de definición del servicio ServiceDefinition.csdef y elija Abrir. Agregue las siguientes instrucciones XML al elemento de rol que requiere esta tarea de inicio. Este comando supone que creó una carpeta para sus tareas de inicio denominada Startup y que este archivo por lotes o comando requiere privilegios elevados. El comando puede ser un archivo .exe, un archivo por lotes, un archivo .msi o cualquier instrucción de línea de comandos válida.

    
    <Startup>
       <Task commandLine="startup\<command>" executionContext="elevated" taskType="simple" />
    </Startup>
    
    

    Este es un ejemplo del elemento webrole en un archivo de definición del servicio con una tarea de inicio agregada:

    
    <WebRole name="WebRole1">
        <Sites>
          <Site name="Web">
            <Bindings>
              <Binding name="Endpoint1" endpointName="Endpoint1" />
            </Bindings>
          </Site>
        </Sites>
        <Endpoints>
          <InputEndpoint name="Endpoint1" protocol="http" port="80" />
        </Endpoints>
        <Imports>
          <Import moduleName="Diagnostics" />
          <Import moduleName="RemoteAccess" />
          <Import moduleName="RemoteForwarder" />
        </Imports>
        <Startup>
          <Task commandLine="startup\StartUpTask.cmd" executionContext="elevated" />
        </Startup>
    </WebRole>
    
    
  6. Para comprobar que la tarea de inicio se ejecuta, publique su aplicación en Windows Azure. Si es necesario, puede crear una conexión al escritorio remoto para la máquina virtual de su rol al publicar su aplicación. A continuación, puede conectarse a la máquina virtual y comprobar que las tareas de inicio se ejecutaron correctamente. Para obtener más información sobre cómo utilizar el escritorio remoto con roles de Windows Azure, vea Usar Escritorio remoto con los roles de Windows Azure.

Para obtener pasos detallados sobre cómo crear una tarea de inicio para un rol, vea How to Define Startup Tasks for a Role. Si necesita utilizar variables de entorno con su tarea de inicio, puede definir variables de entorno para un rol en su archivo de definición del servicio. Para obtener más información sobre este tema, vea How to Define Environment Variables Before a Role Starts.

Para obtener vínculos a información adicional sobre las tareas de inicio de un rol, vea Starting Tasks Before Role Instances Start in Windows Azure.

Publicar un proyecto MVC como un rol web en Windows Azure

Si desea publicar un proyecto MVC como un rol web en Windows Azure, debe asegurarse de que todos los ensamblados de MVC necesarios están disponibles cuando el rol web se ejecute en Windows Azure. Si crea un proyecto MVC como un rol web utilizando las plantillas proporcionadas por las últimas herramientas de Windows Azure para Visual Studio, los ensamblados necesarios se agregan automáticamente al paquete del servicio. En esta situación, no debería ver un mensaje de advertencia que informa que faltan ensamblados de MVC cuando se crea el paquete del servicio.

Para corregir un mensaje de advertencia que indica que faltan ensamblados de MVC, debe seguir los pasos del procedimiento que se aplica a su proyecto MVC:

Para agregar ensamblados de un proyecto MVC3 existente

  1. Si está utilizando Visual Studio con Service Pack 1 para publicar su aplicación de Windows Azure, realice los siguientes pasos para agregar referencias a los ensamblados e incluirlos en el paquete del servicio:

    1. Abra el menú contextual del proyecto MVC y elija Agregar dependencias implementables.

      Se muestra el cuadro de diálogo Agregar dependencias implementables.

    2. Active la casilla ASP.NET MVC y elija el botón Aceptar.

      Ahora se agregarán los ensamblados al crear un paquete del servicio. A continuación, los ensamblados se instalarán en la máquina virtual de este rol web cuando se implemente el paquete del servicio.

  2. Si no está utilizando Visual Studio 2008 con Service Pack 1 para publicar su aplicación de Windows Azure, puede realizar una de las siguientes tareas para asegurarse de que su aplicación de Windows Azure se ejecuta correctamente cuando se implementa en Windows Azure:

    1. Agregar referencias a los siguientes ensamblados a su proyecto de rol web y, a continuación, establecer la propiedad Copy Local en True:

      • Microsoft.Web.Infrastructure

      • System.Web.Helpers

      • System.Web.Mvc

      • System.Web.Razor

      • System.Web.WebPages

      • System.Web.WebPages.Deployment

      • System.Web.WebPages.Razor

      noteNota
      Para obtener más información sobre cómo agregar una referencia de un ensamblado a un proyecto de rol web, vea Incluir archivos en el Paquete de servicios.

    2. Agregar una tarea de inicio a su rol web para instalar los ensamblados de MVC3. Cree una carpeta en su proyecto denominada startup. A continuación, agregue el archivo AspNetMVC3Setup.exe a esta carpeta. Finalmente agregue este XML al archivo de definición del servicio dentro del elemento de rol web:

      
      <Startup>
         <Task commandLine="startup\AspNetMVC3Setup.exe /q /log mvc3_install.htm" executionContext="elevated" />
      </Startup>
      
      
      noteNota
      Leer una entrada de blog sobre agregar una tarea de inicio para ensamblados MVC3. Para obtener más información sobre las tareas de inicio, consulte la sección anterior: Crear una tarea de inicio para un rol.

Para agregar ensamblados de un proyecto MVC2 existente

  1. Si recibe este mensaje de advertencia para un proyecto MVC2, la referencia del ensamblado de System.Web.Mvc ya se debería agregar al proyecto de rol web. Para incluir este ensamblado en el paquete del servicio, abra el menú contextual de este ensamblado y elija Propiedades.

    Se muestra la ventana Propiedades.

  2. En la lista Copia local elija Verdadero.

Utilizar una base de datos de SQL Azure con los proveedores universales de ASP.NET

Al crear un rol web MVC 3 con las herramientas Windows Azure para Visual Studio, el rol web se configura para utilizar los proveedores universales de ASP.NET. De forma predeterminada, estos proveedores se configuran para utilizar una base de datos LocalDB para la cadena de conexión DefaultConnection. Al publicar su aplicación de Windows Azure, debe cambiar la cadena de conexión para utilizar una instancia de Base de datos de SQL que Windows Azure almacene.

ImportantImportante
Debe tener una suscripción que le habilite para utilizar una instancia de Base de datos de SQL que Windows Azure hospede. Si tiene acceso a su suscripción desde el Portal de administración de Windows Azure, puede determinar qué servicios proporciona su suscripción. Para obtener más información sobre cómo cambiar su cadena de conexión, vea Cómo: Migrar y publicar una aplicación web en Windows Azure desde Visual Studio.

Vea también

¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

Mostrar:
© 2014 Microsoft. Reservados todos los derechos.