Exportar (0) Imprimir
Expandir todo

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

Actualizado: abril de 2014

Al crear un paquete o publicar su aplicación de 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 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 Azure. Vea Procedimiento para configurar un proyecto de Azure con Visual Studio.

En la siguiente tabla se muestran las advertencias clave para la validación del paquete de una aplicación de 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 referencia al proyecto y establezca la propiedad Copy Local en true.

Include Files in the Service Package

WAT151

El proyecto 'ProjectName' depende del siguiente ensamblado: ‘AssemblyName’. 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 referencia al 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 'ProjectName' depende del siguiente ensamblado: ‘AssemblyName’. 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 'ProjectName' depende del siguiente ensamblado MVC: AssemblyName. Estos ensamblados se deben agregar al paquete o instalar en la máquina virtual de su rol. Para obtener más detalles al respecto, vea la página de ayuda siguiente: http://go.microsoft.com/fwlink/?LinkId=218227.

Publicar un proyecto MVC como un rol web

WAT160

El proyecto 'ProjectName' contiene el siguiente ensamblado: ‘AssemblyName’. Este ensamblado no es compatible con la arquitectura de procesador de 64 bits utilizada por IIS en 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 'SettingName' se establece para que utilice el emulador de almacenamiento local del rol 'RoleName' en el archivo de configuración 'FileName'. Para tener acceso a los servicios de almacenamiento de Azure, debe proporcionar una cadena de conexión de almacenamiento de Azure válida.

Para obtener más información sobre cómo agregar una cadena de conexión de almacenamiento de 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 Azure.

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

WAT190

El proyecto 'ProjectName' tiene como destino '.NETFrameWorkVersion'. 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 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 'ProjectName'. Esta cadena de conexión no funcionará al ejecutar esta aplicación en 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 al respecto, vea la página de ayuda siguiente: 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. Vea Usar Escritorio remoto con los roles de Azure para obtener más información.

Otro enfoque para determinar por qué no se inicia un rol es habilitar IntelliTrace para su implementación. Para obtener más información, vea Depurar con IntelliTrace y Visual Studio un servicio en la nube y 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. Después de crear la máquina virtual de ese rol, se ejecuta la tarea de inicio utilizando estos archivos.

ImportantImportante
Si los archivos de su tarea de inicio están en una subcarpeta, la 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.

      Aparece 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 Azure. De ser 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 Azure, vea Usar Escritorio remoto con los roles de Azure.

Vea How to Define Startup Tasks for a Role para obtener más información. 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. Vea How to Define Environment Variables Before a Role Starts o Starting Tasks Before Role Instances Start in Azure para obtener más información.

Publicar un proyecto MVC como un rol web en Azure

Si desea publicar un proyecto MVC como un rol web en Azure, debe asegurarse de que todos los ensamblados de MVC necesarios están disponibles cuando el rol web se ejecute en Azure. Si crea un proyecto MVC como un rol web utilizando las plantillas proporcionadas por las últimas herramientas de 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 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.

      Aparece 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 Azure, puede realizar una de las siguientes tareas para asegurarse de que su aplicación de Azure se ejecuta correctamente cuando se implementa en 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 Include Files in the Service Package.

    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 acerca de las tareas de inicio, vea 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.

    Aparece 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 MVC3 con las herramientas 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 en la cadena de conexión DefaultConnection. Al publicar su aplicación de Azure, necesita cambiar la cadena de conexión para utilizar una instancia de Base de datos SQL que Azure hospede.

ImportantImportante
Para ello, necesita una suscripción que le habilite para utilizar una instancia de Base de datos SQL que Azure hospede. Si tiene acceso a su suscripción desde el Portal de administración de Azure, puede determinar qué servicios proporciona su suscripción. Vea Procedimiento para migrar y publicar una aplicación web en Azure desde Visual Studio para obtener más información.

Vea también

Adiciones de comunidad

Mostrar:
© 2014 Microsoft