Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
por Tom Dykstra
En esta serie de tutoriales se muestra cómo implementar (publicar) una aplicación web de ASP.NET en Azure App Service Web Apps o en un proveedor de hospedaje de terceros mediante Visual Studio 2012 o Visual Studio 2010. Para obtener información sobre la serie, consulte el primer tutorial de la serie.
En esta página se describen algunos problemas comunes que pueden surgir al implementar una aplicación web de ASP.NET mediante Visual Studio. Para cada una, se proporcionan una o varias causas posibles y las soluciones correspondientes.
Los escenarios que se muestran se aplican a los proveedores de hospedaje de Azure y de terceros. Para más información sobre la solución de problemas de aplicaciones web en Azure App Service, consulte los siguientes recursos:
- Solución de problemas de una aplicación web en Azure App Service con Visual Studio
- Supervisión de Web Apps en Azure App Service
- Anuncio de la versión de Windows Azure SDK 2.0 para .NET (el blog de ScottGu muestra cómo obtener registros de diagnóstico en Visual Studio)
Error del servidor en la aplicación '/': la configuración de error personalizada actual impide que los detalles del error se vean de forma remota
Escenario
Después de implementar un sitio en un host remoto, recibirá un mensaje de error que menciona la configuración customErrors en el archivo Web.config, pero no indica la causa real del error:
Server Error in '/' Application.
Runtime Error
Description: An application error occurred on the server. The current custom error settings
for this application prevent the details of the application error from being viewed remotely
(for security reasons). It could, however, be viewed by browsers running on the local server
machine.
Details: To enable the details of this specific error message to be viewable on remote machines,
please create a <customErrors> tag within a "web.config" configuration file located in the
root directory of the current web application. This <customErrors> tag should then have its
"mode" attribute set to "Off".
Posible causa y solución
De forma predeterminada, ASP.NET muestra información detallada de errores solo cuando la aplicación web se ejecuta en el equipo local. Por lo general, no desea mostrar información detallada de errores cuando la aplicación web está disponible públicamente a través de Internet, ya que es posible que los hackers puedan usar esta información para encontrar vulnerabilidades en la aplicación. Sin embargo, al implementar un sitio o actualizaciones en un sitio, a veces algo va mal y necesita obtener el mensaje de error real.
Para permitir que la aplicación muestre mensajes de error detallados cuando se ejecuta en el host remoto, edite el archivo Web.config para establecer el modo customErrors desactivado, vuelva a implementar la aplicación y vuelva a ejecutar la aplicación:
Si el archivo Web.config de la aplicación tiene un elemento customErrors dentro del elemento system.web, cambie el atributo mode a 'off'. De lo contrario, agregue un elemento customErrors en el elemento system.web con el atributo mode establecido en "off", como se muestra en el ejemplo siguiente:
<configuration> <system.web> <customErrors mode="off"/> </system.web> </configuration>Implemente la aplicación.
Ejecute la aplicación y repita lo que hizo anteriormente que provocó el error. Ahora puede ver cuál es el mensaje de error real.
Cuando haya resuelto el error, restaure la configuración customErrors original y vuelva a implementar la aplicación.
No se puede crear ni copiar en sombra "ContosoUniversity" cuando ese archivo ya existe.
Escenario
Al intentar ejecutar un proyecto en Visual Studio, obtendrá una página de error con un mensaje como el ejemplo siguiente:
Error del servidor en la aplicación '/'. No se puede crear o realizar una copia de sombra de 'ContosoUniversity' cuando ese archivo ya existe.
Posible causa y solución
Espere un minuto y actualice el explorador, o vuelva a compilar el sitio e intente ejecutarlo de nuevo.
El acceso se deniega en una página web que usa SQL Server Compact
Escenario
Al implementar un sitio que usa SQL Server Compact y ejecuta una página en el sitio implementado que tiene acceso a la base de datos, verá el siguiente mensaje de error:
Acceso denegado. (Excepción de HRESULT: 0x80070005 (E_ACCESSDENIED))
Posible causa y solución
La cuenta DE SERVICIO DE RED del servidor debe poder leer los archivos binarios nativos de SQL Service Compact que se encuentran en la carpeta bin\amd64 o bin\x86 , pero no tiene permisos de lectura para esas carpetas. Establezca el permiso de lectura para NETWORK SERVICE en la carpeta bin , asegurándose de ampliar los permisos a las subcarpetas.
No se puede leer el archivo de configuración debido a permisos insuficientes
Escenario
Al hacer clic en el botón Publicar de Visual Studio para implementar una aplicación en IIS en el equipo local, se produce un error en la publicación y la ventana Salida muestra un mensaje de error similar al siguiente:
Error al leer el archivo de configuración de IIS "MACHINE/REDIRECTION". La identidad que realiza esta operación era ... Error: No se puede leer el archivo de configuración debido a permisos insuficientes.
Posible causa y solución
Para usar la publicación con un solo clic en IIS en el equipo local, debe ejecutar Visual Studio con permisos de administrador. Cierre Visual Studio y reinícielo con permisos de administrador.
No se pudo conectar al equipo de destino... utilizando el proceso especificado
Escenario
Al hacer clic en el botón Publicar de Visual Studio para implementar una aplicación, se produce un error en la publicación y la ventana Salida muestra un mensaje de error similar al siguiente:
Web deployment task failed.(Could not connect to the destination computer ("<server URL>") using the specified process
("The Web Management Service"). This can happen if a proxy server is interrupting communication with the destination server.
Disable the proxy server and try again.) ... The remote server returned an error: (502) Bad Gateway.
Posible causa y solución
Un servidor proxy interrumpe la comunicación con el servidor de destino. En el Panel de control de Windows o en Internet Explorer, seleccione Opciones de Internet y seleccione la pestaña Conexiones . En el cuadro de diálogo Propiedades de Internet , haga clic en Configuración de LAN. En el cuadro de diálogo Configuración de red de área local (LAN), desactive la casilla Detectar automáticamente la configuración . A continuación, vuelva a hacer clic en el botón Publicar.
Si el problema persiste, póngase en contacto con el administrador del sistema para determinar lo que se puede hacer con la configuración de proxy o firewall. El problema se produce porque Web Deploy usa un puerto no estándar para la implementación del servicio de administración web (8172); para otras conexiones, Web Deploy usa el puerto 80. Cuando se implementa en un proveedor de hospedaje de terceros, normalmente se usa el servicio de administración web.
El grupo de aplicaciones predeterminado de .NET 4.0 no existe
Escenario
Al implementar una aplicación que requiera .NET Framework 4, verá el siguiente mensaje de error:
El grupo de aplicaciones de .NET 4.0 predeterminado no existe o no se pudo agregar la aplicación. Compruebe que ASP.NET 4.0 está instalado en esta máquina.
Posible causa y solución
ASP.NET 4 no está instalado en IIS. Si el servidor en el que va a realizar la implementación es el equipo de desarrollo y tiene Visual Studio 2010 instalado en él, ASP.NET 4 está instalado en el equipo, pero es posible que no esté instalado en IIS. En el servidor en el que va a realizar la implementación, abra un símbolo del sistema con privilegios elevados e instale ASP.NET 4 en IIS ejecutando los siguientes comandos:
cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –iru
También es posible que tenga que establecer manualmente la versión de .NET Framework del grupo de aplicaciones predeterminado. Para obtener más información, consulte el tutorial Implementación en IIS como entorno de prueba en esta serie.
El formato de la cadena de inicialización no se ajusta a la especificación a partir del índice 0.
Escenario
Después de implementar una aplicación mediante publicación con un solo clic, al ejecutar una página que tenga acceso a la base de datos, recibirá el siguiente mensaje de error:
El formato de la cadena de inicialización no se ajusta a la especificación a partir del índice 0.
Posible causa y solución
Abra el archivo Web.config en el sitio implementado y compruebe si los valores de la cadena de conexión comienzan por $(ReplaceableToken_, como en el ejemplo siguiente:
<connectionStrings>
<add name="DefaultConnection" connectionString="$(ReplaceableToken_DefaultConnection-Web.config Connection String_0)" providerName="System.Data.SqlServerCe.4.0" />
<add name="SchoolContext" connectionString="$(ReplaceableToken_SchoolContext-Web.config Connection String_0)" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
Si las cadenas de conexión tienen un aspecto similar a este ejemplo, edite el archivo del proyecto y agregue la siguiente propiedad al elemento PropertyGroup que es para todas las configuraciones de compilación:
<AutoParameterizationWebConfigConnectionStrings>False</AutoParameterizationWebConfigConnectionStrings>
A continuación, vuelva a implementar la aplicación.
Error interno del servidor HTTP 500
Escenario
Al ejecutar el sitio implementado, verá el siguiente mensaje de error sin información específica que indique la causa del error:
Error HTTP 500: error interno del servidor.
Posible causa y solución
Hay muchas causas de errores 500, pero una posible causa si sigue estos tutoriales es que coloca un elemento XML en un lugar incorrecto en uno de los archivos de transformación de Web.config. Por ejemplo, recibiría este error si coloca la transformación que inserta un elemento <location> debajo de <system.web> en lugar de directamente debajo de <configuration>. Puede usar la característica de versión preliminar de transformación Web.config para comprobar que las transformaciones funcionan según lo previsto. La solución si encuentra una transformación codificada incorrectamente es corregir el archivo de transformación y volver a implementarlo. Si un error no es obvio, pruebe a comentar las transformaciones y reimplementar para ver cuál está causando el error 500.
Error interno del servidor HTTP 500.21
Escenario
Al ejecutar el sitio implementado, verá el siguiente mensaje de error:
Error HTTP 500.21: error interno del servidor. El controlador "PageHandlerFactory-Integrated" tiene un módulo incorrecto "ManagedPipelineHandler" en su lista de módulos.
Posible causa y solución
El sitio que ha desplegado tiene como objetivo ASP.NET 4, pero ASP.NET 4 no está registrado en IIS en el servidor. En el servidor, abra un símbolo del sistema con privilegios elevados y registre ASP.NET 4 ejecutando los siguientes comandos:
cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –iru
También es posible que tenga que establecer manualmente la versión de .NET Framework del grupo de aplicaciones predeterminado. Para obtener más información, consulte el tutorial Implementación en IIS como entorno de prueba en esta serie.
Error de inicio de sesión al abrir SQL Server Express Database en App_Data
Escenario
Ha actualizado la cadena de conexión de archivoWeb.config para que apunte a una base de datos de SQL Server Express como un archivo .mdf en la carpeta App_Data y la primera vez que ejecute la aplicación verá el siguiente mensaje de error:
System.Data.SqlClient.SqlException: no se puede abrir la base de datos "DatabaseName" solicitada por el inicio de sesión. Error de inicio de sesión.
Posible causa y solución
El nombre del archivo .mdf no puede coincidir con el nombre de ninguna base de datos de SQL Server Express que haya existido en el equipo, incluso si eliminó el archivo .mdf de la base de datos existente anteriormente. Cambie el nombre del archivo .mdf por un nombre que nunca se haya usado como nombre de base de datos y cambie el archivo Web.config para usar el nuevo nombre. Como alternativa, puede usar SQL Server Management Studio Express para eliminar bases de datos de SQL Server Express existentes anteriormente.
No se puede comprobar la compatibilidad del modelo
Escenario
Ha actualizado la cadena de conexión de archivoWeb.config para que apunte a una nueva base de datos de SQL Server Express y la primera vez que ejecute la aplicación verá el siguiente mensaje de error:
No se puede comprobar la compatibilidad del modelo porque la base de datos no contiene metadatos del modelo. Asegúrese de que IncludeMetadataConvention se ha agregado a las convenciones de DbModelBuilder.
Posible causa y solución
Si el nombre de la base de datos que ha colocado en el archivo Web.config se usó antes en el equipo, es posible que ya exista una base de datos con algunas tablas en él. Seleccione un nuevo nombre que no se haya usado en el equipo antes y cambie el archivo Web.config para que apunte a usar este nuevo nombre de base de datos. Como alternativa, puede usar la utilidad SQL Server Express o SQL Server Management Studio Express para eliminar la base de datos existente.
Error de SQL cuando un script intenta crear usuarios o roles
Escenario
Está usando la implementación de base de datos configurada en la pestaña Paquete/Publicación de SQL , los scripts SQL que se ejecutan durante la implementación incluyen los comandos Crear usuario o Crear rol y se produce un error en la ejecución de scripts cuando se ejecutan esos comandos. Es posible que vea mensajes más detallados, como los siguientes:
The approximate location of the error was between lines '1' and '3' of the script.
The verbose log may have more information about the error. The command started with:
CREATE USER [user2] FOR LOGIN [user2] WITH DEFAULT
Error: User does not have permission to perform this action.
Si este error se produce cuando ha configurado la implementación de la base de datos en el Asistente para publicar web en lugar de la pestaña Paquete/Publicar SQL , cree un subproceso en el foro configuración e implementación y la solución se agregará a esta página de solución de problemas.
Posible causa y solución
La cuenta de usuario que usa para realizar la implementación no tiene permiso para crear usuarios o roles. Por ejemplo, la empresa de hospedaje podría asignar los roles de db_datareader, db_datawriter y db_ddladmin a la cuenta de usuario que configura. Son suficientes para crear la mayoría de los objetos de base de datos, pero no para crear usuarios o roles. Una manera de evitar el error es excluir usuarios y roles de la implementación de la base de datos. Para ello, edite el elemento PreSource para el script generado automáticamente de la base de datos para que incluya los atributos siguientes:
CopyAllUsers=false, CopyAllRoles=false
Para obtener información sobre cómo editar el elemento PreSource en el archivo de proyecto, vea How to: Edit Deployment Settings in the Project File. Si los usuarios o roles de la base de datos de desarrollo deben estar en la base de datos de destino, póngase en contacto con el proveedor de hospedaje para obtener ayuda.
Error de tiempo de espera de SQL Server al ejecutar scripts personalizados durante la implementación
Escenario
Ha especificado scripts SQL personalizados para ejecutarse durante la implementación y, cuando Web Deploy los ejecuta, se produce un tiempo de espera.
Posible causa y solución
La ejecución de varios scripts que tienen diferentes modos de transacción puede provocar errores de tiempo de espera. De forma predeterminada, los scripts generados automáticamente se ejecutan en una transacción, pero los scripts personalizados no. Si selecciona la opción Extraer datos o esquema de una base de datos existente en la pestaña Package/Publish SQL (Empaquetar/publicar SQL ) y, si agrega un script SQL personalizado, debe cambiar la configuración de transacción en algunos scripts para que todos los scripts usen la misma configuración de transacción. Para obtener más información, vea Cómo: Implementar una base de datos con un proyecto de aplicación web.
Si ha configurado las opciones de transacción para que todos sean los mismos pero sigan recibiendo este error, una posible solución alternativa es ejecutar los scripts por separado. En la cuadrícula Scripts de base de datos de la pestaña Package/Publish SQL (Empaquetar/publicar SQL), desactive la casilla Incluir del script que provoca el error de tiempo de espera y, a continuación, publique el proyecto. A continuación, vuelva a la cuadrícula Scripts de base de datos , active la casilla Incluir del script y desactive las casillas Incluir de los demás scripts. A continuación, vuelva a publicar el proyecto. Esta vez, cuando se publica, solo se ejecuta el script personalizado seleccionado.
Los datos de transmisión del manifiesto del sitio aún no están disponibles.
Escenario
Al instalar un paquete mediante el archivo deploy.cmd con la opción t (prueba), verá el siguiente mensaje de error:
Error: Los datos de secuencia de "sitemanifest/dbFullSql[@path='C:\TEMP\AdventureWorksGrant.sql']/sqlScript' aún no están disponibles.
Posible causa y solución
El mensaje de error significa que el comando no puede generar un informe de prueba. Sin embargo, el comando puede ejecutarse si usa la opción y (instalación real). El mensaje indica solo que hay un problema al ejecutar el comando en modo de prueba.
Esta aplicación requiere ManagedRuntimeVersion v4.0
Escenario
Al intentar realizar la implementación, verá el siguiente mensaje de error:
El grupo de aplicaciones que está intentando usar tiene la propiedad "managedRuntimeVersion" establecida en "v2.0". Esta aplicación requiere "v4.0".
Posible causa y solución
ASP.NET 4 no está instalado en IIS. Si el servidor en el que va a realizar la implementación es el equipo de desarrollo y tiene Visual Studio 2010 instalado en él, ASP.NET 4 está instalado en el equipo, pero es posible que no esté instalado en IIS. En el servidor en el que va a realizar la implementación, abra un símbolo del sistema con privilegios elevados e instale ASP.NET 4 en IIS ejecutando los siguientes comandos:
cd %windir%\Microsoft.NET\Framework\v4.0.30319
aspnet_regiis.exe –i
No se puede convertir Microsoft.Web.Deployment.DeploymentProviderOptions
Escenario
Al implementar un paquete, verá el siguiente mensaje de error:
No se puede convertir el objeto de tipo "Microsoft.Web.Deployment.DeploymentProviderOptions" a "Microsoft.Web.Deployment.DeploymentProviderOptions".
Posible causa y solución
Está intentando realizar la implementación desde el Administrador de IIS mediante la interfaz de usuario de Web Deploy 1.1 en un servidor que tenga web Deploy 2.0 instalado. Si usa la herramienta de administración remota de IIS para implementar mediante la importación de un paquete, active el cuadro de diálogo Nuevas características disponibles al establecer la conexión. (Este cuadro de diálogo solo se puede mostrar una vez cuando se establece la conexión por primera vez. Para borrar la conexión y empezar de nuevo, cierre el Administrador de IIS y vuelva a iniciarla escribiendo inetmgr /reset en el símbolo del sistema). Si una de las características enumeradas es la interfaz de usuario de Web Deploy y tiene un número de versión inferior a 8, es posible que el servidor que va a implementar tenga instaladas las versiones 1.1 y 2.0 de Web Deploy. Para implementar desde un cliente que tenga instalada la versión 2.0, el servidor solo debe tener instalado Web Deploy 2.0. Tendrá que ponerse en contacto con el proveedor de hospedaje para resolver este problema.
No se pueden cargar los componentes nativos de SQL Server Compact
Escenario
Al ejecutar el sitio implementado, verá el siguiente mensaje de error:
No se pueden cargar los componentes nativos de SQL Server Compact correspondientes al proveedor de ADO.NET de la versión 8482. Instale la versión correcta de SQL Server Compact. Consulte el artículo de KB 974247 para obtener más información.
Posible causa y solución
El sitio implementado no tiene subcarpetas amd64 y x86 con los ensamblados nativos en ellos en la carpeta bin de la aplicación. En un equipo con SQL Server Compact instalado, los ensamblados nativos se encuentran en C:\Archivos de programa\Microsoft SQL Server Compact Edition\v4.0\Private. La mejor manera de obtener los archivos correctos en las carpetas correctas de un proyecto de Visual Studio es instalar el paquete SqlServerCompact de NuGet. La instalación del paquete agrega un script posterior a la compilación para copiar los ensamblados nativos en amd64 y x86. Sin embargo, para que estos se implementen, debe incluirlos manualmente en el proyecto. Para obtener más información, consulte el tutorial Implementación de SQL Server Compact .
Error "Path is not valid" (Ruta de acceso no válida) después de implementar una aplicación de Entity Framework Code First
Escenario
Implemente una aplicación que use migraciones de Entity Framework Code First y un DBMS, como SQL Server Compact, que almacena su base de datos en un archivo de la carpeta App_Data. Tiene migraciones de Code First configuradas para crear la base de datos después de la primera implementación. Al ejecutar la aplicación, recibe un mensaje de error como el ejemplo siguiente:
La ruta de acceso no es válida. Compruebe el directorio de la base de datos. [Path = c:\inetpub\wwwroot\App_Data\DatabaseName.sdf ]
Posible causa y solución
Code First está intentando crear la base de datos, pero la carpeta App_Data no existe. Ya sea que no tenía ningún archivo en la carpeta App_Data cuando se implementó, o seleccionó Excluir App_Data en la pestaña Paquete/Publicar web de la ventana Propiedades del proyecto. El proceso de implementación no creará una carpeta en el servidor si no hay ningún archivo en la carpeta que se va a copiar en el servidor. Si ya tenía la base de datos configurada en el sitio, el proceso de implementación eliminará los archivos y la carpeta App_Data si seleccionó Quitar archivos adicionales en el destino en el perfil de publicación. Para solucionar el problema, coloque un archivo de marcador de posición como un archivo .txt en la carpeta App_Data, asegúrese de que no tenga Excluir App_Data seleccionada y vuelva a implementarlo.
"No se puede usar un objeto COM que ha sido separado de su RCW subyacente."
Escenario
Ha usado correctamente la publicación con un solo clic para implementar la aplicación y, a continuación, empieza a recibir este error:
Error en la tarea de implementación web. (No se pudo completar la solicitud a la dirección URL del agente remoto '<https://serverurl.com/msdeploy.axd?site=sitename>').
No se pudo completar la solicitud a la dirección URL del agente remoto "<https://url/msdeploy.axd?site=sitename>".
Se anuló la solicitud: se canceló la solicitud.
No se puede usar un objeto COM que ha sido separado de su RCW subyacente.
Posible causa y solución
Cerrar y reiniciar Visual Studio suele ser todo lo necesario para resolver este error.
La implementación falla porque las credenciales de usuario usadas para la publicación no tienen la autoridad setACL.
Escenario
La publicación falla con un error que indica que no tiene autorización para establecer permisos de carpeta (la cuenta de usuario que está utilizando no tiene permisos de setACL).
Posible causa y solución
De forma predeterminada, Visual Studio establece permisos de lectura en la carpeta raíz del sitio y permisos de escritura en la carpeta App_Data. Si sabe que los permisos predeterminados en las carpetas del sitio son correctos y no es necesario establecerlo, deshabilite este comportamiento agregando <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> al archivo de perfil de publicación (para afectar a un único perfil) o al archivo wpp.targets (para afectar a todos los perfiles). Para obtener información sobre cómo editar estos archivos, vea Cómo: Editar la configuración de implementación en archivos de perfil (.pubxml).
Errores de acceso denegado cuando la aplicación intenta escribir en una carpeta de aplicación
Escenario
La aplicación produce errores cuando intenta crear o editar un archivo en una de las carpetas de la aplicación, ya que no tiene autoridad de escritura para esa carpeta.
Posible causa y solución
De forma predeterminada, Visual Studio establece permisos de lectura en la carpeta raíz del sitio y permisos de escritura en la carpeta App_Data. Si la aplicación necesita acceso de escritura a una subcarpeta, puede establecer permisos para esa carpeta, como se muestra en los tutoriales Configuración de permisos de carpeta e Implementación en el entorno de producción de esta serie. Si la aplicación necesita acceso de escritura a la carpeta raíz del sitio, debe impedir que establezca el acceso de solo lectura en la carpeta raíz agregando <IncludeSetACLProviderOn Destination>False</IncludeSetACLProviderOnDestination> al archivo de perfil de publicación (para afectar a un único perfil) o al archivo wpp.targets (para afectar a todos los perfiles). Para obtener información sobre cómo editar estos archivos, vea Cómo: Editar la configuración de implementación en archivos de perfil (.pubxml).
Error de configuración: el atributo targetFramework hace referencia a una versión posterior a la versión instalada de .NET Framework
Escenario
Ha publicado correctamente un proyecto web que tiene como destino ASP.NET 4.5, pero al ejecutar la aplicación (con el modo customErrors establecido en "desactivado" en el archivo Web.config), obtendrá el siguiente error:
El atributo "targetFramework" del <elemento de compilación> del archivo Web.config solo se usa para la versión 4.0 de destino y posteriores de .NET Framework (por ejemplo, "<compilación targetFramework="4.0">"). El atributo "targetFramework" hace referencia actualmente a una versión posterior a la versión instalada de .NET Framework. Especifique una versión de destino válida de .NET Framework o instale la versión necesaria de .NET Framework.
El cuadro Error de origen de la página de error resalta la siguiente línea de Web.config como causa del error:
<compilación targetFramework="4.5" />
Posible causa y solución
El servidor no admite ASP.NET 4.5. Póngase en contacto con el proveedor de hospedaje para determinar cuándo y si se puede agregar compatibilidad con ASP.NET 4.5. Si la actualización del servidor no es una opción, debe implementar un proyecto web que tenga como destino ASP.NET 4 o versiones anteriores en su lugar.
Si implementa un proyecto web de ASP.NET 4 o versiones anteriores en el mismo destino, active la casilla Quitar archivos adicionales en el destino en la pestaña Configuración del Asistente para publicar web . Si no selecciona Quitar archivos adicionales en el destino, seguirá recibiendo la página Error de configuración.
La ventana Propiedades del proyecto incluye una lista desplegable de marco de trabajo de destino, pero no se puede resolver este problema simplemente cambiando de .NET Framework 4.5 a .NET Framework 4. Si cambia la plataforma de destino a una versión de marco anterior, el proyecto seguirá teniendo referencias a los ensamblados de la versión del marco posterior y no se ejecutará. Tiene que cambiar manualmente esas referencias o crear un proyecto que tenga como destino .NET Framework 4 o versiones anteriores. Para obtener más información, vea .NET Framework Targeting for Web Sites (Destinatarios de .NET Framework para sitios web).
Errores de nivel de confianza media
Escenario
Al ejecutarse su aplicación en producción, se presenta un error relacionado con el nivel de confianza media.
Posible causa y solución
Muchos proveedores de hospedaje de terceros ejecutan su sitio web en confianza media, lo que significa que hay algunas cosas que no se pueden hacer. Por ejemplo, el código de aplicación no puede acceder al Registro de Windows y no puede leer ni escribir archivos que están fuera de la jerarquía de carpetas de la aplicación. De forma predeterminada, la aplicación se ejecuta en plena confianza en el equipo local, lo que significa que es posible que la aplicación pueda hacer cosas que generarían errores al implementarla en producción.
Puede configurar la aplicación para que se ejecute en confianza media en el entorno de IIS local para solucionar problemas. Para ello, abra la aplicación Web.config archivo y agregue un elemento trust en el elemento system.web , como se muestra en este ejemplo.
<configuration>
<!-- Settings -->
<system.web>
<trust level="Medium" />
<!-- Settings -->
</system.web>
</configuration>
La aplicación ahora se ejecutará en confianza media en IIS incluso en el equipo local.
No lo haga si va a realizar la implementación en Azure App Service, ya que Azure no requiere confianza media. En el momento en que este tutorial se está escribiendo en febrero de 2012, el uso de este método para que la aplicación se ejecute en confianza media provocará un error en Azure.
Si usa migraciones de Entity Framework Code First y va a implementar en un proveedor de hospedaje que ejecuta la aplicación en confianza media, asegúrese de que tiene instalada la versión 5.0 o posterior. En Entity Framework versión 4.3, las migraciones requieren plena confianza para actualizar el esquema de la base de datos.
Error no encontrado http 404.17
Escenario
Al ejecutar el sitio implementado en el equipo de desarrollo en IIS, verá el siguiente mensaje de error que indica que el servidor no puede procesar Default.aspx:
Error HTTP 404.17: no encontrado
El contenido solicitado parece ser script y el controlador de archivos estático no lo atenderá.
Posible causa y solución
es posible que ASP.NET 4.5 no esté instalado en el equipo. Consulte los pasos del tutorial Implementación en IIS como entorno de prueba en esta serie que explica cómo instalar ASP.NET 4.5.